我们首先从这个函数出发:\(\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太懒所以并没有,留着以后填坑
原文地址:https://www.cnblogs.com/zhou2003/p/10046869.html