初探莫比乌斯反演

Posted zhou2003

tags:

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

我们首先从这个函数出发:(mu(n)),它被称作莫比乌斯函数

它的定义式是这样的

[ mu(n)= egin{cases} 1& n=1(-1)^r& n=p_1p_2ldots p_r,p_1,p_2,ldots p_rin prime& p^k|n,pin prime,k>1 end{cases} ]
即:在对(n)进行质因子分解之后,所有质因子的幂次都不大于1的话,(mu(n)=(-1)^r),r为n互不相同的质因子的个数。若n有某一个质因子的幂次大于1的话,(mu(n)=0)

关于(mu(n))函数有许多有趣的性质

1、(sum_{d|n}mu(d)=0(d>1))

证明:令(n=p_1^{a_1}p_2^{a_2}ldots p_r^{a_r},p_1,p_2,ldots p_rin prime),考虑数(m=p_1p_2ldots p_r,p_1,p_2,ldots p_rin prime)

(sum_{d|n}mu(d)=sum_{d|m}mu(d)=sum_{i=0}^{r}C_r^i(-1)^r1^{i-r}=(1-1)^r=0)

命题得证

2、(frac{varphi(n)}{n}=sum_{d|n}frac{mu(d)}{d})

为了证明这个和下面的反演,我们引入一个新概念——狄利克雷卷积

我们说:数论函数指定义域为正整数、值域为复数的函数,比如上文中我们提到的(mu(n),varphi(n))

同时我们再定义几个比较常见的数论函数

(e(n)),元函数,(e(n)=[n=1])([]中带的是一个逻辑判别式,如果满足的话值为1,否则值为0)

(I(n)),恒等函数,(I(n)=1)

(id(n)),单位函数,(id(n)=n)

然后就是狄利克雷卷积的定义了

对于两个数论函数(f(n))(g(n)),定义它们的卷积((f*g)(n)=sum_{d|n}f(n)g(frac{n}{d})),一般等式左边的((n))可以不写

容易证明,卷积运算满足交换律,结合律和分配律

我们从卷积的角度,再回过头去看这两条性质

第一条性质可以被表述成(mu*I=e),这是下面证明的关键

第二条性质:

我们在两边同时乘上n,得到(varphi(n)=sum_{d|n}mu(d)frac{n}{d})

我们知道(varphi(n))满足(sum_{d|n}varphi(d)=n)

我们把它写成卷积的形式:(varphi *I=id)

在两边同时乘上(mu),得到(varphi *I *mu=id *mu)

(I*mu)约去,得到(varphi=id*mu),就是我们一开始写出来的式子

因此命题得证

我们再看到莫比乌斯反演,它一般有两种写法

1、如果两个数论函数(f(n),F(n))满足

[ F(n)=sum_{d|n}f(d) ]

那么

[ f(n)=sum_{d|n}mu(d)F(frac{n}{d}) ]

2、如果两个数论函数(f(n),F(n))满足

[ F(n)=sum_{n|d}f(d) ]

那么

[ f(n)=sum_{n|d}mu(frac{d}{n})F(d) ]

我们从纯数学的角度来证明一下这两个式子

1、
[ sum_{d|n}mu(d)F(frac{n}{d})=sum_{d|n}mu(d)sum_{i|frac{n}{d}}f(i)=sum_{i|n}f(i)sum_{d|frac{n}{i}}mu(d) ]

(mu(d))的第一个性质我们知道,当(frac{n}{i}=1)(n=i)时,(sum_{d|frac{n}{i}}mu(d))的值为1,其他时候这个式子的值均为0

因此
[ sum_{i|n}f(i)sum_{d|frac{n}{i}}mu(d)=f(n)(满足i=n时) ]
2、
[ sum_{n|d}mu(frac{d}{n})F(d)=sum_{k=1}mu(k)F(nk)=sum_{k=1}mu(k)sum_{nk|t}f(t)=sum_{n|t}f(t)sum_{k|frac{t}{n}}mu(k) ]
剩下的就和1的证明大体类似了

在这里再提供一种更为简洁的证明思路——利用卷积

在这里以1的证明为一个例子

对于(F(n)=sum_{d|n}f(d)),我们可以把它写成卷积的形式:(F=f*I)

在两边同时乘上(mu),得到(F*mu=f*I*mu)

约去(I*mu),即(f=F*mu)

证完了QAQ

看了这么多,你肯定会问了:这玩意有什么用?

实际上,在一些题目中,出题人会让你求某一个函数的值,我们会发现直接求它的值不好求,而求它的因数函数值之和或倍数函数值之和会更加方便,于是我们就要用到反演了

然而更多的时候我们要求的函数值与反演看起来八竿子打不着,这就需要我们通过构造函数来达到简化计算了

由于涉及到莫比乌斯反演的题目对时间复杂度的要求较高,一般不会要你在(O(n))的时间内求解,所以为了加速,我们还需要掌握一个知识——整除分块,可以直接看我写的某一道题目的题解

例题由于zzr太懒所以并没有,留着以后填坑







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

莫比乌斯反演

莫比乌斯反演

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

莫比乌斯反演总结

浅谈算法——莫比乌斯反演

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