莫比乌斯反演——蒟蒻的理解
Posted Troy Ricardo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了莫比乌斯反演——蒟蒻的理解相关的知识,希望对你有一定的参考价值。
序:最近被反演虐的不要不要的,遂决定写一篇博文,防止以后自己翻车……
1.定义
莫比乌斯函数:$\mu(n)$
$\begin{cases}
& \text{ if } x= \prod_{i=1}^kp_i\;\;\mu(x)=(-1)^k\\
\\
& \text{ else }\;\;\;\;\;\;\;\;\;\;\;\;\;\; \mu(x)=0
\end{cases}$
我们引入一个概念,狄利克雷卷积。即$(f*g)(n)=\sum_{d|n}f(d)*g(\frac n d)$。显然,狄利克雷卷积是满足交换律的。同时其也满足结合律与分配率。
在引入一个概念,积性函数,即函数$f$对于互质的两个数$i,j$满足$f(i*j)=f(i)*f(j)$。其中如果对于任意$i,j$满足$f(i*j)=f(i)*f(j)$,我们称其为完全积性函数。
再例举一些函数的符号:欧拉函数$\phi$,约数个数函数$d$,约数和函数$\sigma$,单位函数$id(n)=n$,元函数$\varepsilon(n)$,当n为1时,$\varepsilon(n)=1$,否则$\varepsilon(n)=0$,以及不变的函数$1(n)=1$。
这里给出一个线性筛的板子:
1 const int N=1e7+1; 2 3 int miu[N],prim[N/5],num,sum[N]; 4 bool vis[N]; 5 6 inline void init(){ 7 miu[1]=1; 8 sum[1]=1; 9 for(int i=2;i<N;i++){ 10 if(!vis[i]) 11 prim[++num]=i,miu[i]=-1; 12 for(int j=1;prim[j]*i<N;j++){ 13 vis[i*prim[j]]=1; 14 if(i%prim[j]==0){ 15 miu[i*prim[j]]=0; 16 break; 17 } 18 miu[i*prim[j]]=-miu[i]; 19 } 20 sum[i]=sum[i-1]+miu[i]; 21 } 22 }
2.莫比乌斯函数的性质
这一段是从目前做过的题总结的,以后没准还得改(没准写的不够……)
莫比乌斯函数一个十分总要的性质,即$(\mu *1)(n)$当且仅当$n==1$时,为1,否则为0。
关于这个的证明用 二项式定理+唯一分解定理 是很好证明的,这里就不多说了。
3.莫比乌斯反演
关于这块,一来是式子太长,二来是百度已经写得很全面了,所以蒟蒻就不献丑了。
参考链接:百度百科。
我想,这里比较重要的一个性质是:$F(n)=(f*1)(n)$,若$f$为积性函数,则$F(n)$也是积性函数。
证明如下:
设$\gcd (n,p)==1$。
$F(n*p)=\sum_{i|n}\sum_{j|p}f(i*j)=\sum_{i|n}f(i)\sum_{j|p}f(j)=F(n)*F(p)$
证毕。
这个性质在我们反演出一个形如$ans=\sum_{i=1}^{n}g(i)\sum_{d|i}f(d)$的式子时,若$f$为积性函数,则我们可以将这个式子时间复杂度优化到至少$O(n)$。
例如:
$$F(n)=\sum_{i|n}\mu(i)*i*n$$
4.关于做题
这个我也没有什么发言权,毕竟我太弱了……但还是想总结一下自己的想法。
反演最重要的是$gcd(i,j)==1$等价为$\sum_{d|t}\mu(d),t=gcd(i,j)$这一式子,在目前所遇到的题目中,关键都是如何将题目给出的内容转化为$gcd$,并且正确的化解,这个我也不怎么会,只能多练习了。
5.总结
个人觉得一些基本证明会不会都不是很重要,毕竟也不可能考为什么$id=(\phi*1)$之类的,明白其过程,对思考有启发就足以。
6.一些题目:
BZOJ YY的GCD
BZOJ 4176 Lucas的数论
BZOJ 3930 CQOI2015 选数
bzoj2693: jzptab
BZOJ 4174 tty的求助
BZOj 3601:一个人的数论
以上是关于莫比乌斯反演——蒟蒻的理解的主要内容,如果未能解决你的问题,请参考以下文章