莫比乌斯反演的前置知识
定义
如果一个数论函数(f)满足:当(nperp m)时,有
则称其为积性函数
当不需要满足互质条件((nperp m))就能满足(f(nm) = f(n)f(m))时,称其为完全积性函数
若(f)是积性函数,且(n=p_1^{alpha_1}p_2^{alpha_2}…p_s^{alpha_s})是(n)的标准分解,则有
因此研究积性函数(f)可以转化为研究(f(p^{alpha})),即(f)在素数和素数的幂上的取值。
积性函数求值
设(f)是积性函数,为求(f(n)),可以对(n)分解素因子,然后计算所有的(f(p^{alpha}))乘起来,因此积性函数求值都可以用线性筛来求
如果要对(1)到(n)之间的所有数求出(f),注意到( ext{Euler})筛法的过程中可以求出每个数的最小素因子和最小素因子的幂次,利用此就能在线性时间内计算出所需的(f)的值
欧拉筛如何求出最小素因子的幂次
void sieve() {
ip[0] = ip[1] = 1;
alpha[1] = 0;
for (int i = 2; i < XR; i++) {
if (!ip[i]) p[c++] = i, alpha[i] = 1, p1[i] = i;
for (int j = 0; j < c && i * p[j] < XR; j++) {
ip[i * p[j]] = 1;
p1[i * p[j]] = p[j];
if (i % p[j]) alpha[i * p[j]] = 1;
else {
alpha[i * p[j]] = alpha[i] + 1;
break;
}
}
//最小素因子:p1[i] ^ alpha[i]
}
}
常见积性函数
单位函数
单位函数(epsilon(n))定义为
其中([ ext{condition}])表示当( ext{condition})为真时取值为(1),否则为(0)的函数。
除数函数
除数函数(sigma_{k}(n))用来表示(n)的因子的(k)次方之和:
约数个数(sigma_{0}(n))常记为(d(n)),约数和(sigma_{1}(n))常记为(sigma(n))。
可以证明除数函数都是积性函数。
证明
每个素因子对函数的贡献都是独立的,它们之间的贡献可以用乘积来衡量,举一个例子:要算(n)的约数个数(即(d(n))),就要枚举(n)的约数(d),考虑(n)的标准分解,也就是(n=p_1^{alpha_1}p_2^{alpha_2}…p_s^{alpha_s}),可以想象出(d)的素因子也跑不出这些个素因子,只不过上面的指数不一样,假设是(smalleta),那么也就是(d=p_1^{eta_1}p_2^{eta_2}…p_s^{eta_s}),(eta_1)显然是要在(0)到(alpha_1)之间,否则(d)就不是(n)的约数了,同理每个(eta)都是对应的每个(0)到(alpha)之间的,那么(eta_1)有(0)到(alpha_1)共(alpha_1+1)种取值,每个(eta)的选取是独立的,所以他们的贡献的乘积就是((1+alpha_1)*(1+alpha_2)*…*(1+alpha_s)),这就是(sigma_0)的算法,其他的(sigma_k)是一样的,只不过((1 + alpha))这一步要换成一个求和的形式。
素因子贡献独立是一个常见的思路。
Euler函数(欧拉函数)
( ext{Euler})函数(varphi(n))表示不超过(n)且与(n)互质的正整数的个数,即
比如说(varphi(6)=2),两个数是(1,5);(varphi(10)=4),四个数分别为(1,3,5,7)。
由(n)的标准分解并结合容斥原理,我们可以得到欧拉函数的显示表达式:
其中(p_i)是质数,(n=p_1^{alpha_1}p_2^{alpha_2}…p_s^{alpha_s})是(n)的标准分解。
性质
对于任(n),( ext{Euler})函数具有如下性质:
要证明这个等式,我们将(1)到(n)中的所有整数按与(n)的最大公约数分类。
若(gcd(n,i)=d),那么(gcd(frac{n}{d},frac{d}{i})=1)。而又(frac{i}{d})是不超过(frac{n}{d})的整数,故这样的(i)有(varphi(frac{n}{d}))个。
考虑所有(d|n),我们就考虑到了所有(1)到(n)之间的(n)个整数,因此有
证明积性
以下是从大佬那里淘来的证明
同样的,(tperp nmLeftrightarrow tperp n,tperp mLeftrightarrow(tmod n)perp n,(tmod m)perp m),所以每个 ([1, nm])之间的与(nm)互质的数(t)都可以对应到一个([1,n])的与(n)互质的数 (tmod n)和一个([1,m])的与(m)互质的数(tmod m)。
并且根据中国剩余定理,这种对应是一一对应的(即已知 (aperp n, bperp m)后可以唯一确定一个([1,nm])之间的(t)使得(tmod n=a, tmod m=b),且(tperp nm))。因此 (varphi(nm)=varphi(n)varphi(m)) 。
然而我看不懂……还是从定义上来证明吧!
假设有两个互质的正整数(n,m),则
因为(n,m)互质,所以(p_i)和(p_{i'})各各都不相同,且都是(nm)的质因子
因此就可以推出(varphi(nm)=varphi(n)varphi(m))
至此,积性函数的性质得证。但是由上面的证明可知,(n,m)必须要互质才可以满足欧拉函数是积性函数,由此可见欧拉函数不是完全积性函数
恒等函数
(mathbf{id}^k=n^k),(mathbf{id}(n)=n)
(就酱紫一笔带过吧……)
性质
若(mathbf{f}(x))和(g(x))均为积性函数,则以下函数也为积性函数
部分性质的证明
来自铃悬的数学讲堂(抄这个东西也很累……)
两个积性函数的狄利克雷卷积是积性函数
考虑到上面的性质,即“若(nperp m)则每个(nm)的约数都可以分解成一个(n)的约数和一个(m)的约数的积”,并且有另一个性质:若(nperp m,amid n,bmid m)则(aperp b)。
于是若(nperp m),我们就有
积性函数的逆是积性函数
第二个重要的结论:积性函数的逆是积性函数。
对于一个积性函数 (f) ,如何证明其逆 (g(n)=[n=1]-sum_{imid n,i
eq1}f(i)gleft(frac ni
ight)) (注意,积性函数一定满足 (f(1)=1) ,因为 (f(1)=f(1)f(1)) ,并且如果 (f(1)=0) 则 (f(n)equiv0) ,这种情况我们不考虑)也满足积性呢?
对 (nm) 的大小进行归纳:
(nm=1) 时, (g(1)=1) ,结论显然成立;
假设 (nm > 1) ,当 (n'm'< nm) 的时候有 (g(n'm')=g(n')g(m')) ,
注意前面几步把 (g(frac{nm}{ab})) 拆成 (g(n/a)g(m/b)) 的时候 (frac{nm}{ab}<nm) ,可以运用归纳条件。
最后一步是因为 (nm>1) 所以 (n,m) 之间至少一个不为 (1) ,则 (epsilon(n)epsilon(m)=[n=1][m=1]=0) 。
就酱紫吧