前言
停更好久了,刚好我们老师讲了莫比乌斯反演,那我就来开数论这个天坑吧。
莫比乌斯反演
比如说我们现在有一个函数
假设f非常容易求得,但是g很难求,那么我们是不是可以通过f来求g呢
然后mu(d)mu(d)这个东西就是莫比乌斯函数,所以这个变换也叫莫比乌斯变换
关于莫比乌斯函数
(1) 若d=1d=1,则μ(d)=1μ(d)=1
(2) 若d=p1∗p2∗p3∗p4∗..∗pnd=p1∗p2∗p3∗p4∗..∗pn (注意不是笔者偷懒,而是p的次数都是1,且都是互异的质数) 那么μ(d)=(−1)kμ(d)=(−1)k
(3) other wise μ(d)=0μ(d)=0
莫比乌斯函数的性质
性质1
对于正整数n,有
中括号在这里表达bool表达式,如果满足中括号内的条件则为1,否则为0
证明:
(1) n=1,根据定义,显然成立
(2) n>1,设n=px11∗px22∗px33∗...∗pxkkn=p1x1∗p2x2∗p3x3∗...∗pkxk,也就是把n质因数分解
那么d一定能表示为py11∗py22∗py33∗...∗pykkp1y1∗p2y2∗p3y3∗...∗pkyk,其中(0<=yi<=xi0<=yi<=xi),那么根据定义,只要有一个y大于二,那么μ(d)=0μ(d)=0,没有贡献,所以我们只要考虑所有y均为0,1时的情况。
我们假设这k个中有r个y=1,那么出现这种情况的方案数为CrkCkr,总贡献为
Crk∗(−1)rCkr∗(−1)r
我们再把每个d的贡献加起来
是不是觉得有点眼熟呢,没错,这就是我们的二项式定理,所以上式就等于(1+(−1))k=0(1+(−1))k=0
结论得证。
性质2
莫比乌斯函数为积性函数
证明:
若有两个互质的数a,b
我们把它们分别分解质因数a=px11∗px22∗...∗pxkka=p1x1∗p2x2∗...∗pkxk,b=qy11∗qy22∗...∗qyttb=q1y1∗q2y2∗...∗qtyt
由于a,b互质,a∗b=px11∗px22∗...∗pxkk∗qy11∗qy22∗...∗qytta∗b=p1x1∗p2x2∗...∗pkxk∗q1y1∗q2y2∗...∗qtyt
如果μ(a)==0或μ(b)==0μ(a)==0或μ(b)==0为0,那么说明一定有一个x或y>=2,那么μ(a∗b)μ(a∗b)也一定为0.
若μ(a)μ(a)与μ(b)μ(b)均为1,说明k与t均为偶数,那么k+t也为偶数,所以μ(a∗b)μ(a∗b)也为1
若μ(a)μ(a)与μ(b)μ(b)均为-1,说明k与t均为奇数,那么k+t为偶数,所以μ(a∗b)μ(a∗b)为1
若μ(a)为1,μ(b)μ(a)为1,μ(b)为-1,说明k为偶数,t为奇数,那么k+t为奇数,所以μ(a∗b)μ(a∗b)为-1,
μ(b)为1,μ(a)μ(b)为1,μ(a)为-1与上一条同理。
综上所述,莫比乌斯函数为积性函数。
莫比乌斯函数的求法
这里介绍一下如何使用线性筛筛出莫比乌斯函数
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
mu[1]=1;
for (int i=2;i<=100000;i++){
if (isprime[i]){prime[++pri]=i;mu[i]=-1;}//质数的mu显然是-1
for (int j=1;j<=pri&&i*prime[j]<=100000;j++){
int tt=i*prime[j];
isprime[tt]=0;
if (i%prime[j]==0){//说明prime[j]这个质因子次数大于1,所以mu为0
mu[tt]=0;
break;
}
else{
mu[tt]=-mu[i];//说明新出现了一个质数,所以要再*=-1
}
}
}
其复杂度就是线性筛的复杂度,和筛质数,筛phi都是一样的。
莫比乌斯反演
我们现在已经知道了莫比乌斯函数和他的一些性质,那么我们试着证明一下莫比乌斯反演的正确性。
再把ff展开
然后我们把g的sigma换到前面去
我们考虑后面这个sigma的值
(1)当i=n时,
(2)当i为小于n且是n的因数时,根据
那么
乘上一个g(i)仍然为0,那么上下两种情况加起来就是
所以就是g(n),证毕
莫比乌斯反演的变形
变形一:
证明:
我们把上面二式的f展开
我们令d1*d=T
那么原式=
仔细想一下i,d,T的关系应该不难理解
当(1)T=1时,
(2)T>1时,
综上所述,结论正确
变形二:
证明:
另di=kdi=k
那么
又是熟悉的套路,就是把μμ换成前缀和,就有非常好的性质了,那么最后得到的这个式子,只有在t=i时,后面的这个μμ的sigma才会变成1,所以加起来就是f(i)
尾声
以上就是笔者对莫比乌斯反演的一些理解与介绍,军训每天逃机房花了5天终于码完了,希望能给大家带来帮助