###反演
首先讲一下什么是反演,定义两个序列 ∣F(n)∣,∣f(n)∣,Fi=α(i)f(i),表示|F(n)|与|f(n)|之间满足某种关系,
我们需要求得 ∣f(n)∣,那么就可以通过反演公式求得 f(i)=β(i)F(i).
###莫比乌斯反演
首先引入个函数, 莫比乌斯函数,记作 μ(x),令 x=p1a1p2a2...pkak,该函数有三种取值
μ=⎩⎨⎧0,ai≥21,kmod2=0−1,kmod2=0
令 S(x)=i∣x∑xμ(i),S(x)={1,x=10,x>1
证明
对于 x 与 x 的任意一个约数 t,有
x=p1a1p2a2...pkak
t=p1b1p2b2...pkbk,0≤bi≤ai
对于任意一个含有大于2的指数的约数,我们可以不考虑,因为它对 S(x) 无影响,那么我们就可以得到 bi=0,1
于是就有S(x)=Ck0(−1)0+Ck1(−1)1+...+Ckk(−1)k
根据二项式定理(a+b)k=Ck0akb0+Ck1ak−1b1+...+Ckka0bk
得到S(x)=(1−1)k=0
证毕
若 F(n)=d∣n∑f(d),则 f(n)=d∣n∑μ(d)F(dn)
证明
d∣n∑μ(d)Fdn=d∣n∑μ(d)i∣dn∑f(i)
考虑交换一下枚举的顺序, i∣dn⇒i∣n, i∣dn⇒d∣in
得到 d∣n∑μ(d)i∣dn∑f(i)=i∣n∑f(i)d∣in∑μ(d)
仔细观察一下 d∣in∑μ(d),就等于 S(in)
所以,当 i=n时, d∣n∑μ(d)Fdn=f(i)
证毕
关于莫比乌斯反演的另一种形式
若F(n)=n∣d∑∞f(d),则 fn=n∣d∑∞μndF(d)
证明过程与上面大同小异,令 d‘=nd
f(n)=n∣d∑∞μd‘d∣i∑∞f(i)=n∣i∑∞f(i)d‘∣ni∑∞μd‘=f(i)
###二项式反演
f(n)=i=0∑nCnig(i)⇔g(n)=i=0∑n(−1)n−iCnif(i)
证明
i=0∑n(−1)n−iCnif(i)=i=0∑n(−1)n−iCnij=0∑iCijg(j)=i=0∑nj=0∑i(−1)n−iCniCijg(j)
CniCij=i!(n−i)!n!j!(i−j)!i!=j!(n−j)!n!(n−i)!(i−j)!(n−j)!=CnjCn−jn−i⇒i=0∑n(−1)n−iCnif(i)=i=0∑nj=0∑i(−1)n−iCnjCn−jn−ig(j)
交换一下循环顺序
i=0∑nj=0∑i(−1)n−iCnjCn−jn−ig(j)=j=0∑ni=j∑n(−1)n−iCnjCn−jn−ig(j)=j=0∑nCnjg(j)i=j∑n(−1)n−iCn−jn−i
我们着眼于 i=j∑n(−1)n−iCn−jn−i=k=0∑n−j(−1)kCn−jk
若 n−j=0,根据二项式定理k=0∑n−j(−1)kCn−jk=(1−1)n−j=0
若 n−j=0⇒k=0∑n−j(−1)kCn−jk=(1−1)n−j=(−1)0C00=1
则只有当 j=n 时, i=0∑n(−1)n−iCnif(i)=g(j)
证毕
另一种形式 f(k)=i=k∑nCikg(i)⇔g(k)=i=k∑n(−1)i−kCikf(i)