莫比乌斯函数
概念
莫比乌斯函数的定义如下:
若 d=1d=1d=1 ,则 μ(d)=1\mu(d)=1μ(d)=1若 d=p1⋅p2⋯pk,pid=p_1\cdot p_2 \cdots p_k,p_id=p1⋅p2⋯pk,pi为互异质数,那么μ(d)=(−1)k\mu(d)=(-1)^kμ(d)=(−1)k 。(注意,p互不相等,也就是说,一个数不能有多个相同的质因子)其他情况下 μ(d)=0\mu(d)=0μ(d)=0 。
性质
对于任意正整数nnn有
∑d∣nμ(d)={1(n=1)0(n>1)\sum_{d|n}\mu(d)=\left\{ \begin{array}{} 1 & (n=1)\\ 0 & (n>1)\\ \end{array} \right. d∣n∑μ(d)={10(n=1)(n>1)
证明:
当n=1n=1n=1时显然
当n>1n>1n>1时
首先将nnn分解成n=p1a1p2a2⋯pkakn=p_1^{a_1} p_2^{a_2}\cdots p_k^{a_k}n=p1a1p2a2⋯pkak
因为在nnn中的所有因子ddd中,只有μ(d)\mu(d)μ(d)不为零的才会计算到答案里,所以说我们设r=p1p2⋯prr=p_1p_2\cdots p_rr=p1p2⋯pr
此时有
∑d∣nμ(d)=Ck0−Ck1+Ck2+⋯+(−1)kCkk=∑i=0k(−1)i⋅Cki\sum_{d|n}\mu(d)=C^0_k-C^1_k+C^2_k+\cdots+(-1)^kC^k_k=\sum_{i=0}^{k}(-1)^i\cdot C^i_k d∣n∑μ(d)=Ck0−Ck1+Ck2+⋯+(−1)kCkk=i=0∑k(−1)i⋅Cki
由二项式定理得
(x+y)n=∑i=0nCni⋅xi⋅yn−i(x+y)^n=\sum_{i=0}^n C^i_n\cdot x^i\cdot y^{n-i} (x+y)n=i=0∑nCni⋅xi⋅yn−i
当x=1,y=−1x=1,y=-1x=1,y=−1时
∑i=0nCni⋅(−1)i=∑i=0nCni⋅(−1)i⋅1n−i=(−1+1)n=0\sum^{n}_{i=0}C^i_n\cdot(-1)^i=\sum_{i=0}^nC_n^i\cdot (-1)^i\cdot 1^{n-i}=(-1+1)^n=0 i=0∑nCni⋅(−1)i=i=0∑nCni⋅(−1)i⋅1n−i=(−1+1)n=0
得证
求法
因为莫比乌斯函数是积性函数,所以求莫比乌斯函数可以用线性筛来求。
莫比乌斯反演
形式一
概念
我们设
F(n)=∑d∣nf(d)F(n)=\sum_{d|n} f(d) F(n)=d∣n∑f(d)
此时就有
f(n)=∑d∣nμ(d)⋅F(nd)f(n)=\sum_{d|n}\mu(d)\cdot F(\dfrac{n}{d})\\ f(n)=d∣n∑μ(d)⋅F(dn)
这时的式子就是一个狄利克雷卷积,关于狄利克雷卷积,可以看看我的另一篇博客。
证明
f(n)=∑d∣nμ(d)⋅F(nd)f(n)=\sum_{d|n}\mu(d)\cdot F(\dfrac{n}{d}) f(n)=d∣n∑μ(d)⋅F(dn)
我们来看看怎样证明莫比乌斯反演中的第一个式子。
首先我们将F(nd)F(\dfrac{n}{d})F(dn)代入式子
∑d∣nμ(d)⋅F(nd)=∑d∣nμ(d)∑k∣ndf(k)\sum_{d|n}\mu(d)\cdot F(\dfrac{n}{d})=\sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}f(k) d∣n∑μ(d)⋅F(dn)=d∣n∑μ(d)k∣dn∑f(k)
通过和式的变换,我们可以得出
∑d∣nμ(d)∑k∣ndf(k)=∑k∣nf(k)∑d∣nkμ(d)\sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}f(k)=\sum_{k|n}f(k)\sum_{d|\frac{n}{k}}\mu(d) d∣n∑μ(d)k∣dn∑f(k)=k∣n∑f(k)d∣kn∑μ(d)
因为
∑d∣nμ(d)={1(n=1)0(n>1)\sum_{d|n}\mu(d)=\left\{ \begin{array}{} 1 & (n=1)\\ 0 & (n>1)\\ \end{array} \right. d∣n∑μ(d)={10(n=1)(n>1)
所以只有在kn=1\frac{k}{n}=1nk=1时,∑d∣nkμ(d)=1\sum_{d|\frac{n}{k}}\mu(d)=1∑d∣knμ(d)=1,其余时为零,故
∑k∣nf(k)∑d∣nkμ(d)=f(n)\sum_{k|n}f(k)\sum_{d|\frac{n}{k}}\mu(d)=f(n) k∣n∑f(k)d∣kn∑μ(d)=f(n)
得证
形式二
概念
我们设
F(n)=∑n∣df(d)F(n)=\sum_{n|d} f(d) F(n)=n∣d∑f(d)
此时就有
f(n)=∑n∣dμ(dn)⋅F(d)f(n)=\sum_{n|d}\mu(\frac dn)\cdot F(d)\\ f(n)=n∣d∑μ(nd)⋅F(d)
这一种在推导过程中更常用。
第二个公式和第一个公式乍一看没什么不同,但仔细多看几遍,会发现,你枚举的ddd是nnn的倍数,而形式一中nnn是ddd的倍数。
其实我第一眼看上去,也觉得不可思议,倍数不是有无限个吗?为什么还能成立呢?接下来我们在来证明一下。
证明
首先将F(d)F(d)F(d)代入
∑n∣dμ(dn)⋅F(d)=∑n∣dμ(dn)∑d∣kf(k)\sum_{n|d}\mu(\dfrac{d}{n})\cdot F(d)=\sum_{n|d}\mu(\dfrac{d}{n})\sum_{d|k}f(k) n∣d∑μ(nd)⋅F(d)=n∣d∑μ(nd)d∣k∑f(k)
然后经过和式的变换,有
∑n∣dμ(dn)∑d∣kf(k)=∑n∣kf(k)∑d∣knμ(d)\sum_{n|d}\mu(\dfrac{d}{n})\sum_{d|k}f(k)=\sum_{n|k}f(k)\sum_{d|\frac{k}{n}}\mu(d) n∣d∑μ(nd)d∣k∑f(k)=n∣k∑f(k)d∣nk∑μ(d)
因为
∑d∣nμ(d)={1(n=1)0(n>1)\sum_{d|n}\mu(d)=\left\{ \begin{array}{} 1 & (n=1)\\ 0 & (n>1)\\ \end{array} \right. d∣n∑μ(d)={10(n=1)(n>1)
所以只有在kn=1\frac{k}{n}=1nk=1时,∑d∣knμ(d)=1\sum_{d|\frac{k}{n}}\mu(d)=1∑d∣nkμ(d)=1,其余时为零,故
∑n∣kf(k)∑d∣knμ(d)=f(n)\sum_{n|k}f(k)\sum_{d|\frac{k}{n}}\mu(d)=f(n) n∣k∑f(k)d∣nk∑μ(d)=f(n)
得证
例题
例题一
题目描述
求证:
∑d∣nμ(d)⋅nd=ϕ(n)\sum_{d|n}\mu(d)\cdot\frac{n}{d}=\phi(n) d∣n∑μ(d)⋅dn=ϕ(n)
做法
我们先把原式化成如下式子:
∑d∣nμ(nd)⋅Id(d)=ϕ(n)\sum_{d|n}\mu(\frac {n}{d})\cdot Id(d)=\phi(n) d∣n∑μ(dn)⋅Id(d)=ϕ(n)
然后我们将它进行反演。
Id(n)=∑d∣nϕ(d)Id(n)=\sum_{d|n}\phi(d) Id(n)=d∣n∑ϕ(d)
即
n=∑d∣nϕ(d)n=\sum_{d|n}\phi(d) n=d∣n∑ϕ(d)
我们设 f(n)=∑d∣nϕ(d)f(n) = \sum_{d|n}\phi(d)f(n)=∑d∣nϕ(d) ,因为 ϕ\phiϕ 是一个积性函数,所以 f(n)f(n)f(n) 也是一个积性函数。
于是我们将 nnn 分解为 p1a1⋅p2a2⋯pkakp_1^{a_1}\cdot p_2^{a_2}\cdots p_k^{a_k}p1a1⋅p2a2⋯pkak 的形式,其中 ppp 是互异质数。
接下来我们就可以得到:
f(n)=f(p1a1)⋅f(p2a2)⋯f(pkak)f(n)=f(p_1^{a_1})\cdot f(p_2^{a_2}) \cdots f(p_k^{a_k}) f(n)=f(p1a1)⋅f(p2a2)⋯f(pkak)
又因为
f(piai)=∑d∣nphi(d)=ϕ(1)+ϕ(pi)+ϕ(pi2)+⋯+ϕ(piai)=1+(p−1)+(p2−p)+⋯+(pk−pk−1)=pk\begin{aligned} f(p_i^{a_i}) &= \sum_{d|n} phi(d) \\ &= \phi(1) + \phi(p_i) + \phi(p_i^2)+\cdots+\phi(p_i^{a_i})\\ &=1+(p-1)+(p^2-p)+\cdots+(p^k-p^{k-1})\\ &=p^k \end{aligned} f(piai)=d∣n∑phi(d)=ϕ(1)+ϕ(pi)+ϕ(pi2)+⋯+ϕ(piai)=1+(p−1)+(p2−p)+⋯+(pk−pk−1)=pk
所以
f(n)=f(p1a1)⋅f(p2a2)⋯f(pkak)=p1a1⋅p2a2⋯pkak=nf(n)=f(p_1^{a_1})\cdot f(p_2^{a_2}) \cdots f(p_k^{a_k})=p_1^{a_1}\cdot p_2^{a_2}\cdots p_k^{a_k}=n f(n)=f(p1a1)⋅f(p2a2)⋯f(pkak)=p1a1⋅p2a2⋯pkak=n
即 n=∑d∣nϕ(d)n=\sum_{d|n}\phi(d)n=∑d∣nϕ(d) 。