前几天学了一下二项式反演的证明,咕了几天后觉得还是发一篇博客比较好。
二项式反演,就是这么个式子:
(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))。
代数证明如下:
[egin{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}),这个展开成阶乘形式就会发现两侧相等。
[egin{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
eq 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))
证明方法类似:
[egin{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 已经没有什么好害怕的了