前几天学了一下二项式反演的证明,咕了几天后觉得还是发一篇博客比较好。
二项式反演,就是这么个式子:
\(f(n) = \sum _ {i = 0} ^ {n} C_{n} ^ {i} g(i) \Leftrightarrow g(n) = \sum _ {i = 0} ^ {n} (-1) ^ {n - i}C_{n} ^ {i} f(i)\)。
代数证明如下:
\[\begin{align*} g(n) &= \sum _ {i = 0} ^ {n} (-1) ^ {n - i} C_{n} ^ {i} \sum _ {j = 0} ^ {i} C_{i} ^ {j} g(j) \\\ &= \sum _{i = 0} ^ {n} \sum _ {j = 0} ^ {i} C_{n} ^ {i} C_{i} ^ {j} g(j)(-1) ^ {n - i} \\ \end{align*}\]
其中\(C_{n} ^ {i} C_{i} ^ {j} = C_{n} ^ {j} C _{n - j} ^ {i - j}\),这个展开成阶乘形式就会发现两侧相等。
\[ \begin{align*} g(n) &= \sum _{i = 0} ^ {n} \sum _ {j = 0} ^ {i} C_{n} ^ {j} C_{n - j} ^ {i - j} g(j) (-1) ^ {n - i} \\ &= \sum _ {j = 0} ^ {n} g(j)C_{n} ^ {j} \sum _ {i = j} ^ {n} C_{n - j} ^ {i - j}(-1) ^ {n - i} \end{align*} \]
对于\(\sum _ {i = j} ^ {n} C_{n - j} ^ {i - j}(-1) ^ {n - i}\),当\(j = n\)时,该式子等于\(1\),否则等于\(0\)。当\(j = n\)时代入得证;当\(j \neq n\)时,后面的\(\sum\)就是杨辉三角第\(n - j\)行的偶数项之和减去奇数项之和(或者反过来),根据二项式定理可知,偶数项之和等于奇数项之和,那么得证。
于是原式\(=g(n)\)。
二项式反演还有另一种形式,也比较常见:
\(f(k) = \sum _ {i = k} ^ {n} C_{i} ^ {k} g(i) \Leftrightarrow g(k) = \sum _ {i = k} ^ {n} (-1) ^ {i - k} C_{i} ^ {k} f(i)\)
证明方法类似:
\[\begin{align*} g(k) &= \sum _ {i = k} ^ {n} (-1) ^ {i - k} C_{i} ^ {k} \sum _ {j = i} ^ {n} C_{j} ^ {i} g(j) \\ &= \sum _ {i = k} ^ {n} \sum _ {j = i} ^ {n} (-1) ^ {i - k} C_{j} ^ {k} C_{j - k} ^ {i - k} g(j) \\ &= \sum _ {j = k} ^ {n} C_{j} ^ {k} g(j) \sum _ {i = k} ^ {j} (-1) ^ {i - k} C_{j - k} ^ {i - k} \end{align*}\]
然后后面的式子也是只有当\(j = k\)时为\(1\),否则为\(0\)。
最后推一道例题:luogu P4859 已经没有什么好害怕的了
转载于:https://www.cnblogs.com/mrclr/p/10980495.html