莫比乌斯函数与莫比乌斯反演

Posted yydyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了莫比乌斯函数与莫比乌斯反演相关的知识,希望对你有一定的参考价值。

莫比乌斯函数

定义

莫比乌斯函数(mu(n)),当(n=1)时,(mu(n)=1);当(n>1)时,设(n)的唯一分解式为(n=p_1^{c_1}cdots p_k^{c_k}),则(mu(n))定义为
(mu(n)= egin{cases} (-1)^k,c_1=c_2=cdots=c_k=1 \\ 0, exists, c_i>1(1leq ileq k)\\ end{cases})

性质

  1. (sumlimits_{d|n}mu(d)=[n=1])
    注:约定方括号[]中为一个命题,其结果为(1)(该命题为真),或为(0)(该命题为假)。例如([p为质数])=(egin{cases} 1,p是质数 \\ 0,p不是质数 \\ end{cases})
    证明:(n=1)时,显然成立;现设(n>1)(n)的唯一分解式为(n=p_1^{c_1}cdots p_k^{c_k}),则
    (egin{aligned} sumlimits_{d|n}mu(d) =&mu(1)+mu(p_1)+cdots+mu(p_k)+mu(p_1p_2)\\ &+cdots +mu(p_{k-1}p_k)+cdots+mu(p_1cdots p_k)\\ =&1+inom{k}{1}(-1)+inom{k}{2}(-1)^2+cdots+inom{k}{k}(-1)^k\\ =&(1-1)^k=0 end{aligned})
  2. (varphi(n)=sumlimits_{d|n}mu(d)dfrac{n}{d})
    证明:
    因为(varphi(n)=nleft(1-dfrac{1}{p_1} ight)cdotsleft(1-dfrac{1}{p_k} ight)),其中(n=p_1^{c_1}cdots p_k^{c_k})(n)的标准分解式,利用(mu(n)),可得(varphi(n)=sumlimits_{d|n}mu(d)dfrac{n}{d})

莫比乌斯反演

观察这两个等式
(qquadqquadqquadegin{aligned} n&=sumlimits_{d|n}varphi(d)=sumlimits_{d|n}varphileft(dfrac{n}{d} ight)\\ varphi(n)&=sumlimits_{d|n}mu(d)dfrac{n}{d}=sumlimits_{d|n}muleft(dfrac{n}{d} ight)d\\ end{aligned})
考虑将其推广至一般情况

莫比乌斯变换

对于数论函数(f(n),g(n)),若
(qquadqquad qquadqquad f(n)=sumlimits_{d|n}g(d)=sumlimits_{d|n}gleft(dfrac{n}{d} ight))
则称(f(n))(g(n))莫比乌斯变换,而(g(n))(f(n))莫比乌斯逆变换

反演公式

若有两个数论函数(f(n),g(n))满足
(qquad qquad qquad qquad f(n)=sumlimits_{d|n}g(d)qquad qquad (1))
则有
(qquad qquad qquad qquad g(n)=sumlimits_{d|n}mu(d)fleft(dfrac{n}{d} ight) qquad qquad (2))
反过来,若满足((2)),则((1))也成立。
证明:(f(n),g(n))满足((1)),则
(qquad qquad egin{aligned} sumlimits_{d|n}mu(d)fleft(dfrac{n}{d} ight)&=sumlimits_{d|n}mu(d)sumlimits_{d'|frac{n}{d}}g(d')\\ &=sumlimits_{dd'|n}mu(d)g(d')\\ &=sumlimits_{d'|n}sumlimits_{d|frac{n}{d'}}mu(d)g(d')\\ &=sumlimits_{d'|n}g(d')sumlimits_{d|frac{n}{d'}}mu(d)\\ &=g(n)\\ end{aligned})
(qquad)反过来,设(f(n),g(n))满足((2)),同法可证
(qquad qquad egin{aligned} sumlimits_{d|n}g(d)&=sumlimits_{d|n}gleft(dfrac{n}{d} ight)\\ &=sumlimits_{d|n}sumlimits_{d'|frac{n}{d}}muleft(dfrac{n}{dd'} ight)f(d')\\ &=sumlimits_{dd'|n}muleft(dfrac{n}{dd'} ight)f(d')\\ &=sumlimits_{d'|n}f(d')sumlimits_{d|frac{n}{d'}}muleft(dfrac{n}{dd'} ight)\\ &=f(n)\\ end{aligned})

在OI中的应用

通常,在OI竞赛中,应用莫比乌斯反演的关键在于构造如下的式子
(qquad qquad qquad qquad sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}f(gcd(i,j)))
其中(f(n))是一个积性函数。
构造数论函数(g(n))满足(f(n)=sumlimits_{d|n}g(d))
由莫比乌斯反演公式得(g(n)=sumlimits_{d|n}mu(d)fleft(dfrac{n}{d} ight))
化简原式
(qquad qquad qquad sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}f(gcd(i,j))=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}sumlimits_{d|gcd(i,j)}g(d))
因为(d|gcd(i,j)Leftrightarrow d|i,d|j),所以(d)必须是(i,j)的约数
考虑对每个(d),枚举(d)的倍数,接着化简
(qquad qquad qquad egin{aligned} sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}f(gcd(i,j))&=sumlimits_{d=1}^{min(n,m)}sumlimits_{d|i}^n sumlimits_{d|j}^mg(d)\\ &=sumlimits_{d=1}^{min(n,m)}lfloorfrac{n}{d} floorlfloorfrac{m}{d} floor g(d) end{aligned})
这样只需要枚举(d),就能求出(sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}f(gcd(i,j))),时间复杂度为(O(n))
考虑(lfloorfrac{n}{d} floorlfloorfrac{m}{d} floor)可以使用数论分块,再预处理一下(g(n))的前缀和,时间复杂度降至(O(sqrt n))
至于(g(n))的计算,因为(g(n)=sumlimits_{d|n}mu(d)fleft(dfrac{n}{d} ight)),而(f(n),mu(n))为积性函数,所以(g(n))也是积性函数。参考这篇博客(g(n))可以在线性时间内求出。

以上是关于莫比乌斯函数与莫比乌斯反演的主要内容,如果未能解决你的问题,请参考以下文章

莫比乌斯函数与莫比乌斯反演

数论: 莫比乌斯反演 莫比乌斯函数

莫比乌斯反演

莫比乌斯函数/莫比乌斯反演的小笔记

与莫比乌斯反演没什么关系的莫比乌斯函数题

莫比乌斯反演总结