0、前言
ljm没有进省队,走上了文化课的不归路。
ljm非常不甘心,考虑到tyz的数学整体水平不高,ljm决定认真学习数学,以便出毒瘤数学题来为难进队的神仙们。
那么先从莫比乌斯反演开始。
1、开始
莫比乌斯反演最基本的就是这样两个式子:
对于约数的莫比乌斯反演:
若:
那么满足
对于倍数的莫比乌斯反演:
若:
那么满足:
这里的
2、莫比乌斯函数
(1) 定义
莫比乌斯函数的定义如下:
当
当
其余情况
(2) 性质
- 性质一:莫比乌斯函数是积性函数,即满足:
μ(a∗b)=μ(a)∗μ(b),(a,b)=1 。
应用:鉴于各种套路,我们知道积性函数一般是可以被线性筛出来的,所以莫比乌斯函数同样有着线性筛法:
void shai()
{
mu[1]=1;
for(int i=2;i<=maxn;i++)
{
if(!vis[i])
prime[++tot]=i,mu[i]=-1;
for(int j=1;j<=tot && i*prime[j]<=maxn;j++)
{
vis[i*prime[j]]=1;
if(i%prime[j]==0)
{
mu[i*prime[j]]=0;
break;
}
else mu[i*prime[j]]=-mu[i];
}
}
}
- 性质二:
∑d|nμ(d)=[n=1] 。
- 证明:当
n=1 时,μ(1)=1 ,得证。 - 当
n≠1 时,设n=p1k1∗p2k2∗⋯∗pmkm ,d=p1t1∗p2t2∗⋯∗pmtm 。
因为莫比乌斯函数的定义,如果任意xi>1 ,那么μ(d)=0 ,所以我们只用考虑xi=0 或xi=1 的情况。
不妨假设有d 中有r 个xi=1 ,那么可得:
∑d|nμ(d)=∑r=0m(mr)(−1)r(n≠1)
后面的式子是不是很眼熟?感觉很像二项式定理。
二项式定理长这样:(x+y)n=∑k=0n(nk)xn−kyk
我们令x=1,y=−1 ,将n,k 换成m,r ,原式变形为:
(1−1)m=∑r=0m(mr)(−1)r=1 ,得证。
- 证明:当
- 性质三:并没有什么用,先占个坑,有空回来填。
3、莫比乌斯反演证明
- 以最基础的
f(n)=∑d|nμ(d)F(nd) 为例证明吧。
- 由
F(n) 的定义可得:F(nd)=∑d'|ndf(d') - 代回原式可得
∑d|nμ(d)F(nd)=∑d|nμ(d)∑d'|ndf(d') - 如果令
nd=kd' ,那么kd=nd' ,也就是d|nd' 。因为每一个μ(d) 都要与每一个f(d') 乘一次,即:∑d|nμ(d)∑d'|ndf(d')=∑d|nd'μ(d)∑d'|nf(d') - 由莫比乌斯函数的性质二可得,只有
d′=n 时,上式的和为f(n) ,其余情况为0,得证。
- 由
4、有什么用?
刚刚翻来覆去说了半天好像也没说这个懵逼莫比乌斯反演有什么用
莫比乌斯反演,一般用来解决
基本的莫比乌斯反演就这些东西了。但没几道题会用到这么简单的东西。所以高级应用和骚操作还是要去做难题来慢慢积累啊。
5、一些例题
占坑。