如果两个函数g,f满足: g ( n ) = ∑ i = 1 n C n i f ( i ) g(n)=\sum_{i=1}^{n}C_{n}^{i}f(i) g(n)=∑i=1nCnif(i)
那么 f ( n ) = ∑ i = 1 n ( − 1 ) n − i C n i g ( i ) f(n)=\sum_{i=1}^{n}{(-1)^{n-i}C_{n}^{i}g(i)} f(n)=∑i=1n(−1)n−iCnig(i)
以上推下为例:
1.将g函数表达式代入:
f ( n ) = ∑ i = 1 n ( − 1 ) n − i ∗ C n i ∗ [ ∑ j = 1 i C i j ∗ f ( i ) ] f(n)=\sum_{i=1}^{n}{(-1)^{n-i}*C_{n}^{i}*[\sum_{j=1}^{i}{C_{i}^{j}}*f(i)]} f(n)=∑i=1n(−1)n−i∗Cni∗[∑j=1iCij∗f(i)]
2.转换枚举对象
= ∑ j = 1 n f ( j ) ∗ ∑ i = j n ( − 1 ) n − i C n i C i j =\sum_{j=1}^{n}{f(j)*\sum_{i=j}^{n}{(-1)^{n-i}C_{n}^{i}C_{i}^{j}}} =∑j=1nf(j)∗∑i=jn(−1)n−iCniCij
所以问题就转变成了证明: ∑ i = j n ( − 1 ) n − i C n i C i j = = [ j = n ] \sum_{i=j}^{n}{(-1)^{n-i}C_{n}^{i}C_{i}^{j}} == [j=n] ∑i=jn(−1)n−iCniCij==[j=n]
∑ i = j n ( − 1 ) n − i C n i C i j \sum_{i=j}^{n}{(-1)^{n-i}C_{n}^{i}C_{i}^{j}} ∑i=jn(−1)n−iCniCij
= ∑ i = j n ( − 1 ) n − i ∗ n ! i ! ( n − i ) ! ∗ i ! j ! ( i − j ) ! =\sum_{i=j}^{n}{(-1)^{n-i}*\frac{n!}{i!(n-i)!}*\frac{i!}{j!(i-j)!}} =∑i=jn(−1)n−i∗i!(n−i)!n!∗j!(i−j)!i!
= ∑ i = j n ( − 1 ) n − i ∗ n ! ( n − i ) ! ∗ 1 j ! ( i − j ) ! =\sum_{i=j}^{n}{(-1)^{n-i}*\frac{n!}{(n-i)!}*\frac{1}{j!(i-j)!}} =∑i=jn(−1)n−i∗(n−i)!n!∗j!(i−j)!1
= ∑ i = j n ( − 1 ) n − i ∗ n ! ( n − i ) ! ( n − j ) ! ∗ ( n − j ) ! j ! ( i − j ) ! =\sum_{i=j}^{n}{(-1)^{n-i}*\frac{n!}{(n-i)!(n-j)!}*\frac{(n-j)!}{j!(i-j)!}} =∑i=jn(−1)n−i∗(n−i)!(n−j)!n!∗j!(i−j)!(n−j)!
= ∑ i = j n ( − 1 ) n − i ∗ ( n − j ) ! ( n − i ) ! ( i − j ) ! ∗ n ! j ! ( n − j ) ! =\sum_{i=j}^{n}{(-1)^{n-i}*\frac{(n-j)!}{(n-i)!(i-j)!}*\frac{n!}{j!(n-j)!}} =∑i=jn(−1)n−i∗(n−i)!(i−j)!(n−j)!∗j!(n−j)!n!
= ∑ i = j n ( − 1 ) n − i ∗ C n − j i − j ∗ C n j =\sum_{i=j}^{n}{(-1)^{n-i}*C_{n-j}^{i-j}*C_{n}^{j}} =∑i=jn(−1)n−i∗Cn−ji−j∗Cnj
我们发现当且仅当 j = = n j==n j==n 的时候
= ∑ i = j n ( − 1 ) n − i ∗ C n − j i − j = 1 =\sum_{i=j}^{n}{(-1)^{n-i}*C_{n-j}^{i-j}}=1 =∑i=jn(−1)n−i∗Cn−ji−j=1
所以原命题得证,二项式反演得证
我们在上述证明的倒数第五步推到倒数第四步的时候,也就是分子分母同乘 ( n − j ) ! (n-j)! (n−j)!
很多人可能不明白为什么要这么做。
而且最后倒数第二步那个“当且仅当j==n的时候……”这块是怎么来的
现在就来详细讲一下
因为一开始这个式子出现了形如 ∑ i = 0 n C n i \sum_{i=0}^{n}{C_{n}^{i}} ∑i=0nCni这种式子。后来又是在 i ! = n i!=n i!=n的情况下全是0只有相等的时候是1。
那就很容易想到二项式定理的一个常见应用:
( 1 − 1 ) n = 0 = ∑ i = 1 n ( − 1 ) i ∗ C n i (1-1)^n=0=\sum_{i=1}^{n}{(-1)^i*C_{n}^{i}} (1−1)n=0=∑i=1n(−1)i∗Cni
然后还能注意当 n = 0 n=0 n=0的时候由于 0 0 0^0 00没有意义,左边等号不成立,右边等号=1。
因此最后一步 ∑ i = j n ( − 1 ) n − i ∗ C n − j i − j = = [ j = = n ] \sum_{i=j}^{n}{(-1)^{n-i}*C_{n-j}^{i-j}} == [j==n] ∑i=jn(−1)n−i∗Cn−ji−j==[j==n]
就容易看出来了。
我们令 n ‘ = n − j , i ‘ = i − j n`=n-j,i`=i-j n‘=n−j,i‘=i−j
那么上式变为: ∑ i ‘ = 0 n ‘ ( − 1 ) n ‘ − i ‘ ∗ C n ‘ i ‘ \sum_{i`=0}^{n`}{(-1)^{n`-i`}*C_{n`}^{i`}} ∑i‘=0n‘(−1)n‘−i‘∗Cn‘i‘
在 n ‘ ! = 0 n`!=0 n‘!=0的时候
= ( 1 − 1 ) n ‘ = 0 =(1-1)^{n`}=0 =(1−1)n‘=0
否则就是1,这样就说明了最后一步。
现在为什么凑一个 ( n − j ) ! (n-j)! (n−j)!就容易开出来了:我们要先想到用二项式定理。
因为有二项式定理转化为零的某次方,然后就想到凑成二项式定理的形式,所以要凑两个组合数出来,还要保证一个和j有关一个无关(可以提出去只剩一个)
所以能想到分子分母同乘这么一个东西
到这里,证明就显得更加明朗。
撰写不易,敬请指正。
谢谢观看!