zoukankan      html  css  js  c++  java
  • 二项式反演代数证明

    前几天学了一下二项式反演的证明,咕了几天后觉得还是发一篇博客比较好。


    二项式反演,就是这么个式子:
    (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 已经没有什么好害怕的了

  • 相关阅读:
    搭建DHCP服务
    sshd免密登陆
    加密类型以及数据加密解密过程
    搭建私有CA并实现证书颁发
    CentOS 7 启动流程
    Linux命令:tcpdump命令
    Linux命令:ping命令
    Linux命令:ss命令
    Linux命令:ip命令
    Linux命令:netstat命令
  • 原文地址:https://www.cnblogs.com/mrclr/p/10980495.html
Copyright © 2011-2022 走看看