初探莫比乌斯反演

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

它的定义式是这样的

\[\mu(n)= \begin{cases} 1& n=1\\ (-1)^r& n=p_1p_2\ldots p_r,p_1,p_2,\ldots p_r\in prime\\ 0& p^k|n,p\in 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_r\in prime\),考虑数\(m=p_1p_2\ldots p_r,p_1,p_2,\ldots p_r\in 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太懒所以并没有,留着以后填坑

posted @ 2018-11-30 22:22  EncodeTalker  阅读(211)  评论(0编辑  收藏  举报