如果我们有一个这样的式子
f(n)=∑i=0ng(i)Cinf(n)=∑i=0ng(i)Cni
并且我们已经知道了 ff,我们能否直接求出 gg呢?答曰:可以。这个东西就叫做二项式反演。结果就是
g(n)=∑i=0n(−1)n−iCinf(i)g(n)=∑i=0n(−1)n−iCnif(i)
怎么证?
一般证明反演的套路,我们带入一下
g(n)=∑i=0n(−1)n−iCin∑j=0ig(j)Cjig(n)=∑i=0n(−1)n−iCni∑j=0ig(j)Cij
改变一下枚举顺序
g(n)=∑j=0ng(j)∑i=jn(−1)n−iCinCjig(n)=∑j=0ng(j)∑i=jn(−1)n−iCniCij
暴拆之后,我们发现一个式子
CinCji=CjnCn−in−jCniCij=CnjCn−jn−i
替换一下
g(n)=∑j=0ng(j)∑i=jn(−1)n−iCjnCn−in−jg(n)=∑j=0ng(j)∑i=jn(−1)n−iCnjCn−jn−i
g(n)=∑j=0nCjng(j)∑i=jn(−1)n−iCn−in−jg(n)=∑j=0nCnjg(j)∑i=jn(−1)n−iCn−jn−i
后面的东西直接二项式定理
g(n)=∑j=0nCjng(j)(−1+1)n−jg(n)=∑j=0nCnjg(j)(−1+1)n−j
仅当 n−j=0n−j=0,即 n=jn=j, (−1+1)n−j(−1+1)n−j才不为0
因此
g(n)=Cnng(n)=g(n)g(n)=Cnng(n)=g(n)
证明完毕。
例题