###反演

首先讲一下什么是反演,定义两个序列 F(n),f(n)|F(n)|,|f(n)|,Fi=α(i)f(i)F_i=\alpha(i)f(i),表示|F(n)|与|f(n)|之间满足某种关系,

我们需要求得 f(n)|f(n)|,那么就可以通过反演公式求得 f(i)=β(i)F(i)f(i)=\beta(i)F(i).

###莫比乌斯反演

首先引入个函数, 莫比乌斯函数,记作 μ(x)\mu(x),令 x=p1a1p2a2...pkakx=p_1^{a_1}p_2^{a_2}...p_k^{a_k},该函数有三种取值

μ={0,ai21,kmod2=01,kmod20\mu=\begin{cases}0,a_i \ge 2\\1,k \mod 2 = 0\\-1,k \mod 2 \ne 0\end{cases}

S(x)=ixxμ(i),S(x)={1,x=10,x>1S(x)=\sum\limits_{i|x}^{x}\mu(i),S(x)=\begin{cases}1,x=1\\0,x>1\end{cases}

证明

对于 xxxx 的任意一个约数 tt,有

x=p1a1p2a2...pkakx=p_1^{a_1}p_2^{a_2}...p_k^{a_k}

t=p1b1p2b2...pkbk,0biait=p_1^{b_1}p_2^{b_2}...p_k^{b^k},0\le b_i \le a_i

对于任意一个含有大于2的指数的约数,我们可以不考虑,因为它对 S(x)S(x) 无影响,那么我们就可以得到 bi=0,1b_i=0,1

于是就有S(x)=Ck0(1)0+Ck1(1)1+...+Ckk(1)kS(x)=C_k^0 (-1)^0+C_k^1 (-1)^1+...+C_k^k (-1)^k

根据二项式定理(a+b)k=Ck0akb0+Ck1ak1b1+...+Ckka0bk(a+b)^k=C_k^0 a^k b_0+C_k^1 a^{k-1} b_1+...+C_k^k a_0 b_k

得到S(x)=(11)k=0S(x)=(1-1)^k=0

证毕

F(n)=dnf(d)F(n)=\sum\limits_{d|n} f(d),则 f(n)=dnμ(d)F(nd)f(n)=\sum\limits_{d|n} \mu(d)F({\frac{n}{d}})

证明

dnμ(d)Fnd=dnμ(d)indf(i)\sum\limits_{d|n} \mu(d)F_{\frac{n}{d}} = \sum\limits_{d|n} {\mu(d)\sum\limits_{i|\frac{n}{d}} f(i)}

考虑交换一下枚举的顺序, indini|\frac{n}{d} \Rightarrow i|n, inddnii|\frac{n}{d} \Rightarrow d|\frac{n}{i}

得到 dnμ(d)indf(i)=inf(i)dniμ(d)\sum\limits_{d|n} {\mu(d)\sum\limits_{i|\frac{n}{d}} f(i)} = \sum\limits_{i|n} f(i)\sum\limits_{d|\frac{n}{i}} \mu(d)

仔细观察一下 dniμ(d)\sum\limits_{d|\frac{n}{i}} \mu(d),就等于 S(ni)S(\frac{n}{i})

所以,当 i=ni = n时, dnμ(d)Fnd=f(i)\sum\limits_{d|n} \mu(d)F_{\frac{n}{d}} = f(i)

证毕

关于莫比乌斯反演的另一种形式

F(n)=ndf(d)F(n)=\sum\limits_{n|d}^\infty f(d),则 fn=ndμdnF(d)f_n=\sum\limits_{n|d}^\infty \mu{\frac{d}{n}}F(d)

证明过程与上面大同小异,令 d=dnd`=\frac{d}{n}

f(n)=ndμddif(i)=nif(i)dinμd=f(i)f(n)=\sum\limits_{n|d}^\infty \mu{d`} \sum\limits_{d|i}^\infty f(i)\\=\sum\limits_{n|i}^\infty f(i) \sum\limits_{d`|\frac{i}{n}}^\infty \mu{d`}=f(i)

###二项式反演

f(n)=i=0nCnig(i)g(n)=i=0n(1)niCnif(i)f(n)=\sum\limits_{i=0}^nC^i_n g(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(−1)^{n−i}C^i_nf(i)

证明

i=0n(1)niCnif(i)=i=0n(1)niCnij=0iCijg(j)=i=0nj=0i(1)niCniCijg(j)\sum\limits_{i=0}^n (-1)^{n-i}C_n^i f(i)=\sum\limits_{i=0}^n (-1)^{n-i}C_n^i \sum\limits_{j=0}^i C^j_i g(j)\\=\sum\limits_{i=0}^n \sum\limits_{j=0}^i (-1)^{n-i}C_n^iC_i^j g(j)

CniCij=n!i!(ni)!i!j!(ij)!=n!j!(nj)!(nj)!(ni)!(ij)!=CnjCnjnii=0n(1)niCnif(i)=i=0nj=0i(1)niCnjCnjnig(j)C_n^iC_i^j=\frac{n!}{i!(n-i)!}\frac{i!}{j!(i-j)!}=\frac{n!}{j!(n-j)!}\frac{(n-j)!}{(n-i)!(i-j)!}=C_n^jC_{n-j}^{n-i}\\\Rightarrow \sum\limits_{i=0}^n (-1)^{n-i}C_n^i f(i)=\sum\limits_{i=0}^n \sum\limits_{j=0}^i (-1)^{n-i}C_n^jC_{n-j}^{n-i} g(j)

交换一下循环顺序

i=0nj=0i(1)niCnjCnjnig(j)=j=0ni=jn(1)niCnjCnjnig(j)=j=0nCnjg(j)i=jn(1)niCnjni\sum\limits_{i=0}^n \sum\limits_{j=0}^i (-1)^{n-i}C_n^jC_{n-j}^{n-i} g(j)=\sum\limits_{j=0}^n \sum\limits_{i=j}^n(-1)^{n-i}C_n^jC_{n-j}^{n-i} g(j)=\sum\limits_{j=0}^n C_n^jg(j)\sum\limits_{i=j}^n(-1)^{n-i}C_{n-j}^{n-i}

我们着眼于 i=jn(1)niCnjni=k=0nj(1)kCnjk\sum\limits_{i=j}^n (-1)^{n-i}C_{n-j}^{n-i}=\sum\limits_{k=0}^{n-j} (-1)^kC_{n-j}^k

nj0n-j\ne 0,根据二项式定理k=0nj(1)kCnjk=(11)nj=0\sum\limits_{k=0}^{n-j} (-1)^kC_{n-j}^k=(1-1)^{n-j}=0

nj=0k=0nj(1)kCnjk=(11)nj=(1)0C00=1n-j=0 \Rightarrow \sum\limits_{k=0}^{n-j} (-1)^kC_{n-j}^k=(1-1)^{n-j}=(-1)^0C_0^0=1

则只有当 j=nj=n 时, i=0n(1)niCnif(i)=g(j)\sum\limits_{i=0}^n (-1)^{n-i}C_n^i f(i)=g(j)

证毕

另一种形式 f(k)=i=knCikg(i)g(k)=i=kn(1)ikCikf(i)f(k)=\sum\limits_{i=k}^n C_i^kg(i) \Leftrightarrow g(k)=\sum\limits_{i=k}^n (-1)^{i-k}C_i^kf(i)