莫比乌斯反演学习笔记1
在这里首先要说明:
1:本文讨论的所有函数为数论函数,即定义域为\(D=N^*\)的函数;
2:\(\sum \limits_{d|n}f(d)\)表示\(d\)取遍\(n\)的所有正因子,再将所有的\(f(d)\)相加,例如当\(n=6\)时,\(\sum \limits_{d|n}f(d)=f(1)+f(2)+f(3)+f(6)\);
3:\(\prod \limits_{i=1}^ka_i=a_1 \times a_2 \times ... \times a_k\),即所有\(a_i\)的乘积;
4:\([p]\)(其中p是一个表达式)表示当p成立时,值为1;否则值为0;
5:\((a,b)\)表示\(gcd(a,b)\),即\(a,b\)的最大公因数;
6:几个在狄利克雷卷积中会出现的基本函数:
\(\varepsilon(n)=[n=1]\),也就是\(\varepsilon(n)=\begin{cases}1\qquad n=1\\0 \qquad n \neq 1 \end{cases}\)
\(I(n)=1\)
\(id(n)=n\)
一、积性函数
定义:如果一个函数\(f(n)\)满足:当\((a,b)=1\)时,有\(f(ab)=f(a) \times f(b)\),则称\(f(n)\)为积性函数。
进一步,如果对于任意数\(a,b\),都有\(f(ab)=f(a) \times f(b)\),则称\(f(n)\)为完全积性函数。
积性函数的基本性质:对于任意正整数\(n \neq 1\),根据唯一分解定理,可以进行分解素因数:即\(n=p_1^{c_1}...p_k^{c_k}=\prod \limits_{i=1}^kp_i^{c_i}\),显然所有的\(p_i^{c_i}\)两两互素,因此有:
\(f(n)=f(p_1^{c_1}) \times ... \times f(p_k^{c_k})=\prod \limits_{i=1}^kf(p_i^{c_i})\)
因此,我们可以用类似线性筛素数的方法线性筛出某一积性函数的值,只需要知道对于每一个素数以及素数的方幂结果为多少即可。
由积性函数以及完全积性函数的定义,\(\varepsilon(n),I(n),id(n)\)显然皆为完全积性函数。
证明积性函数的常见方法是利用上面的唯一分解式,将\(a,b\)唯一分解,再用\((a,b)=1\)的条件可以得到分解出来的所有素数两两不等,从而继续证明。
例如:证明\(d(n)\)为\(n\)的正因子个数为积性函数。
证明:取\((a,b)=1\),将\(a,b\)分解得:\(a=\prod \limits_{i=1}^kp_i^{c_i}\),且\(b=\prod \limits_{i=1}^lq_i^{d_i}\),则\(p_i,q_i\)两两不等(由\((a,b)=1\)可得),于是:
\(d(a)=\prod \limits_{i=1}^k(c_i+1)\),且\(d(b)=\prod \limits_{i=1}^l(d_i+1)\);
由于\(p_i,q_i\)两两不等,所以\(d(ab)=\prod \limits_{i=1}^k(c_i+1)\prod \limits_{i=1}^l(d_i+1)=d(a) \times d(b)\),即\(d(n)\)是积性函数。
*积性函数另一个不太常用的性质:若\(f(n)\)是积性函数,则或者\(f(n)\)是值为\(0\)的常值函数,或者\(f(1)=1\)。
证明十分容易,因为\((n,1)=1\),所以\(f(n)=f(1) \times f(n)\),则\(f(n)=0\)或者\(f(1)=1\)。
二、莫比乌斯函数
定义:若将\(n\)分解素因数为\(n=p_1^{c_1}...p_k^{c_k}=\prod \limits_{i=1}^kp_i^{c_i}\),则莫比乌斯函数定义为:
\(\mu(n)=\begin{cases}1\qquad\qquad n=1\\ (-1)^k\qquad c_1=...=c_k=1\\ 0 \qquad\qquad max(c_1,...,c_k)>1\end{cases}\)
(最后一行的表示其实等价于:若\(n\)有一个因子为完全平方数,则\(\mu (n)=0\))
莫比乌斯函数是积性函数。
证明:取\((a,b)=1\),对\(a,b\)进行讨论:
- 若\(a=1\)或\(b=1\),不妨设\(a=1\),则\(\mu(a)=1\),因为\(\mu(b)=\mu(b)\),所以\(\mu(ab)=\mu(a) \times \mu(b)\)
- 若\(\mu(a)=0\)或\(\mu(b)=0\),不妨设\(\mu(a)=0\),则存在\(p^2|a\),所以\(p^2|ab\),所以有\(\mu(ab)=0\),所以\(\mu(ab)=\mu(a) \times \mu(b)\)
- 否则,设\(a=p_1p_2...p_k,b=q_1q_2...q_l\),则\(\mu(a)=(-1)^k,\mu(b)=(-1)^l\),因为\((a,b)=1\),所以\(p_i,q_i\)两两不等,因此\(\mu(ab)=(-1)^{k+l}\),所以:\(\mu(ab)=\mu(a) \times \mu(b)\)
综上所述,\(\mu(ab)=\mu(a) \times \mu(b)\),所以\(\mu(n)\)是积性函数。
前面已经提到,积性函数可以用线性筛的方法筛出,下面就是使用线性筛求\(\mu(1)\)到\(\mu(x)\)的代码,关键部分有注释:
void init (int x) { mob[1]=1; //由定义可得mob[1]=1 for (int i=2;i<=x;i++) { if (!p[i]) { n[++cnt]=i; mob[i]=-1; //若i是素数,则mob[i]=(-1)^1=-1 } for (int j=1;j<=cnt;j++) { p[i*n[j]]=1; if (i%n[j]==0) { //若i是n[j]的倍数 mob[i*n[j]]=0; //则i*n[j]有n[j]^2的平方因数,所以函数值为0 break; } else { mob[i*n[j]]=-mob[i]; //i*n[j]多了素因子n[j],-1的次数加1 } } } }
下面是一个莫比乌斯函数的重要性质,也是莫比乌斯反演定理的核心内容:
\(\sum \limits_{d|n}\mu(n)=[n=1]\)
证明:
- 若\(n=1\),则上式的值为\(\mu(n)=1\),成立;
- 否则,设\(n\)有\(k\)个不同的素因子,则只需考虑这些素因子的组合即可(因为一旦某个素因子的个数大于1,则结果为0,不计入求和答案);那么取奇数个素因数时,莫比乌斯函数的值为-1,取偶数个素因数时,莫比乌斯函数的值为1,因此原式可转化为:
\[C_n^0-C_n^1+...+(-1)^nC_n^n\] - 再由于\(C_n^m=C_{n-1}^{m-1}+C_{n-1}^m\quad(0<m<n)\),因此原式可以化为:
\(C_n^0-C_{n-1}^0-C_{n-1}^1+...+(-1)^{n-1}C_{n-1}^{n-2}+(-1)^{n-1}C_{n-1}^{n-1}+(-1)^nC_n^n\)
- 此时发现中间项全部抵消,剩余部分为:
\(C_n^0-C_{n-1}^0+(-1)^{n-1}C_{n-1}^{n-1}+(-1)^nC_n^n=1-1+1-1=0\)
- 即\(\sum \limits_{d|n}\mu(n)=0\quad(n \neq 1)\),得证。
三、狄利克雷卷积
定义:已知函数\(f(n),g(n)\),若函数\(h(n)=\sum \limits_{d|n}f(d)g(\frac{n}{d})\),记为\(h=f*g\),称\(h\)为\(f,g\)的狄利克雷卷积。
一般,我们还可以将狄利克雷卷积写成这样的形式:
\(h(n)=\sum \limits_{ij=n}f(i)g(j)\)
这更利于我们解决一些问题。
狄利克雷卷积的运算律:
(一)交换律:\(f*g=g*f\):
证明:因为\((f*g)(n)=\sum \limits_{ij=n}f(i)g(j)\)中\(i,j\)地位相等,因此\(i,j\)位置可交换,满足交换律;
(二)结合律:\((f*g)*h=f*(g*h)\):
证明:根据狄利克雷卷积定义,有:
\(((f*g)*h)(n)=\sum \limits_{ij=n}(\sum \limits_{kl=i}f(k)g(l))h(j)=\sum \limits_{klj=n}f(k)g(l)h(j)\)
同时有:
\((f*(g*h))(n)=\sum \limits_{ij=n}f(i)(\sum \limits_{kl=j}g(k)h(l))=\sum \limits_{ikl=n}f(i)g(k)h(l)\)
两式相等,代表\((f*g)*h=f*(g*h)\);
(三)分配律:\((f+g)*h=f*h+g*h\):
将外部求和进行结合,有\(\sum f(i)+\sum g(i)=\sum (f(i)+g(i))\),由此易证分配率成立(与莫比乌斯反演关系不大,不多做证明了)
狄利克雷卷积有一个结论,虽然这里不会用到,但也非常有用:
两个积性函数的狄利克雷卷积还是积性函数,即若\(f,g\)是积性函数,则\(f*g\)也是积性函数
证明:记\(h=f*g\),取\((a,b)=1\),则根据定义有:
\(h(ab)=\sum \limits_{d|ab}f(d)g(\frac{ab}{d})\)
由于\((a,b)=1\),因此可以将\(d\)表示成:\(d=d_1 \times d_2\quad(d1|a,d2|b)\),而且对于任意一组不同的\((d_1,d_2)\),所对应的\(d\)都不同。因此将原式改写成:
\(h(ab)=\sum \limits_{d_1|a}\sum \limits_{d_2|b}f(d_1d_2)g(\frac{ab}{d_1d_2})\)
因为\((a,b)=1\),所以\((d_1,d_2)=1,(\frac{a}{d_1},\frac{b}{d_2})=1\),根据\(f,g\)是积性函数可以进行拆分:
\(h(ab)=\sum \limits_{d_1|a}\sum \limits_{d_2|b}f(d_1)f(d_2)g(\frac{a}{d_1})g(\frac{b}{d_2})\)
将与\(d_1\)有关的式子提到外层求和:
\(h(ab)=\sum \limits_{d_1|a}(f(d_1)g(\frac{a}{d_1})\sum \limits_{d_2|b}f(d2)g(\frac{b}{d_2}))\)
内外层求和分别独立,可以拆去括号,此时再由定义即可得到:
\(h(ab)=\sum \limits_{d_1|a}(f(d_1)g(\frac{a}{d_1}))\sum \limits_{d_2|b}(f(d2)g(\frac{b}{d_2}))=h(a) \times h(b)\)
得证。
以函数的狄利克雷卷积类比数的乘法,我们已经得到了一系列运算律,下面做进一步的分析。
在乘法中,如果两个数相乘结果为1,则称它们互为倒数,也称为逆元,我们可以类似定义狄利克雷卷积中的逆元。但在此之前,需要先搞清楚卷积中的"1"是多少,即找到一个函数,使得任意一个函数与它求卷积后仍然等于原函数。
定理:对于任意函数\(f(n)\),\(f*\varepsilon=f \quad (\varepsilon(n)=[n=1])\)
证明:由狄利克雷卷积定义有:\((f*\varepsilon)(n)=\sum \limits_{d|n}f(d)\varepsilon(\frac{n}{d})\),又因为当且仅当\(d=n\)时,\(\varepsilon(\frac{n}{d})=1 \neq 0\),因此对答案有贡献的部分只是\(d=n\),因此有:\((f*\varepsilon)(n)=f(n) \times 1=f(n)\),得证。
因此我们定义卷积意义下的逆元为:若\(f*g=\varepsilon\),则称\(f,g\)互为逆元,记作\(f=g^{-1}\)。
下面我们就莫比乌斯函数的逆元进行讨论。
我们已经证明了\(\sum \limits_{d|n}\mu(d)=[n=1]\),我们可以在每个求和式后乘上一个\(1\),将\([n=1]\)用\(\varepsilon(n)\)代换,因此就得到了:\(\mu*I=\varepsilon\),也就是\(I=\mu^{-1}\),其中\(I(n)=1\)。
下面是一个联系了欧拉函数和莫比乌斯函数的定理:
\(\varphi=\mu*id\quad(id(n)=n)\)
证明:设将n进行素因数分解后为:\(n=p_1^{c_1}...p_k^{c_k}\),由定义的角度出发,欧拉函数指的是小于等于n的与n互素的数的个数,那么我们只需要用n减去与n不互素的数的个数即可。
其中,\(n=1 \times n=\mu(1) \times id(n)\),而与n不互素的数,其实就是所有\(p_i\)的倍数,但是\(p_i\)倍数组成的数集中有交集,因此我们需要用容斥原理,设\(S_i\)表示\(p_i\)倍数组成的集合,\(|S|\)表示S的元素数量,则:
\(|\bigcup\limits_{i=1}^kS_i|=\sum\limits_{i=1}^k|S_i|-\sum\limits_{1 \leq i<j \leq n}|S_i\cap S_j|+...+(-1)^{k-1}|\bigcap\limits_{i=1}^kS_i|\)
而事实上,\((-1)^k\)可以直接由莫比乌斯函数提供,而\(|S_i|=\frac{n}{p_i}\),类似的,用\(n\)去除若干\(p_i\)的积就可以得到交集的元素个数了,而这就是卷积式:
\(\sum \limits_{d|n,d \neq 1}((-1) \times\mu(d) \times\frac{n}{d})\)
注意莫比乌斯函数中-1的次数与容斥原理中的次数相差1,而且若d有平方因子,则不会计入答案。因此我们就可以得到:
\(\varphi(n)=n-\sum \limits_{d|n,d \neq 1}((-1) \times\mu(d) \times\frac{n}{d})=\sum\limits_{d|n}\mu(d)id(\frac{n}{d})=(\mu*id)(n)\)
即\(\varphi=\mu*id\),得证。
由上面这个定理,我们可以得到,莫比乌斯函数与容斥原理息息相关,事实上我们在证明\(\mu*I=\varepsilon\)时也运用到了这一性质。
在此介绍这个定理,是因为使用这个定理再加上下面即将介绍的莫比乌斯反演定理就可以得到:\(id=\varphi*I\),也就是:
\(n=\sum \limits_{d|n}\varphi(d)\)
四、莫比乌斯反演定理
下面进入最后一个版块...真正的莫比乌斯反演定理:
\(F(n)=\sum\limits_{d|n}f(n)\ \Leftrightarrow\ f(n)=\sum\limits_{d|n}F(d)\mu(\frac{n}{d})\)
其实只要有了前面的基础,这个结论就非常浅显简单,需要三个之前提到和一个之前没提到的基础知识作为引理:
- \((f*g)*h=f*(g*h)\),记为\(f*g*h\);
- \(f*\varepsilon=f\)
- \(\mu*I=\varepsilon\)
- 若\(f=g\),则\(f*h=g*h\)
最后一条结论非常显然,因此之前没有说明。
下面就开始我们的证明:
先证必要性(\(\Rightarrow\)):
\(F(n)=\sum\limits_{d|n}f(n)\)可以写作\(F=f*I\),则根据引理4,将两边同时卷上\(\mu\):
\(F*\mu=(f*I)*\mu\)
右侧可以通过引理1将括号加在右边:
\((f*I)*\mu=f*(I*\mu)\)
而通过引理3,我们知道:
\(f*(I*\mu)=f*\varepsilon\)
再使用引理2可得:
\(f*\varepsilon=f\)
再看最初的等式,其实已经得到了结论:
\(f=F*\mu\qquad f(n)=\sum\limits_{d|n}F(d)\mu(\frac{n}{d})\)
再证充分性(\(\Leftarrow\)):
\(f(n)=\sum\limits_{d|n}F(d)\mu(\frac{n}{d})\)可以写作\(f=F*\mu\),类似刚才,我们两边同时卷上\(I\):
\(f*I=(F*I)*\mu=F*(I*\mu)\)
通过引理3和引理2可得:
\(F*(I*\mu)=F*\varepsilon=F\)
于是我们就得到了结论:
\(F=f*I\qquad F(n)=\sum\limits_{d|n}f(d)\)
对于莫比乌斯反演定理的另一种理解是:将\(I\)视为\(\mu^{-1}\),或者将\(\mu\)视为\(I^{-1}\),这时结论更加显然,只需在两边同时卷上\(I\)或\(\mu\),同侧逆元抵消即可。
这个过程可以看做移项后乘法变除法的过程。
另一个莫比乌斯反演定理的形式:
\(F(n)=\sum\limits_{n|d}f(d)\ \Leftrightarrow\ f(n)=\sum\limits_{n|d}F(d)\mu(\frac{d}{n})\)
这个式子难以用卷积来直接证明,这里直接用了求和的恒等变换的方法,可供参考:
设\(k=\frac{d}{n}\),则要证的等式右侧为:
\(\sum\limits_{k \in N^*} F(kn)\mu(k)=\sum\limits_{k \in N^*}\mu(k)\sum\limits_{kn|c}f(c)\)
这里可以用类似于狄利克雷卷积结合律的性质交换求和号位置(有点玄学,需要理解一下):
\(\sum\limits_{k \in N^*}\mu(k)\sum\limits_{kn|c}f(c)=\sum\limits_{n|c}f(c)\sum\limits_{k|\frac{c}{n}}\mu(k)\)
此时后面一个是我们熟悉的卷积式,即\(\sum\limits_{k|\frac{c}{n}}\mu(k)=\varepsilon(\frac{c}{n})\),当且仅当\(c=n\)时计入答案:
\(\sum\limits_{n|c}f(c)\sum\limits_{k|\frac{c}{n}}\mu(k)=\sum\limits_{n|c}f(c)\varepsilon(\frac{c}{n})=f(n)\)
类似的,很容易证明反方向的推出关系。至此,我们已经证明了上述定理2。
以上就是莫比乌斯反演的理论部分了...这还有很多应用,包括与狄利克雷卷积的组合应用,各种求和问题以及杜教筛都是基于这一板块的内容的。