• 二项式反演基础


    二项式反演

    (g_n=sumlimits_{i=0}^n(-1)^idisplaystyleinom{n}{i}f_iquad↔quad f_n=sumlimits_{i=0}^n(-1)^idisplaystyleinom{n}{i}g_i)

    证明:

    [egin{align} &sumlimits_{i=0}^n(-1)^iinom{n}{i}g_i\ =&sum_{i=0}^n(-1)^iinom{n}{i}sum_{j=0}^i(-1)^jinom{i}{j}f_j\ =&sum_{i=0}^nsum_{j=0}^i(-1)^{i}(-1)^jfrac{n!}{i!(n-i)!}·frac{i!}{j!(i-j!)}f_j\ =&sum_{i=0}^nsum_{j=0}^i(-1)^{i}(-1)^jfrac{n!}{(n-i)!j!(i-j!)}f_j\ =&sum_{i=0}^nsum_{j=0}^i(-1)^{i}(-1)^jfrac{n!(n-j)!}{(n-j)!(n-i)!j!(i-j!)}f_j\ =&sum_{i=0}^nsum_{j=0}^i(-1)^{i}(-1)^jfrac{n!}{(n-j)!j!}·frac{(n-j)!}{(n-i)!(i-j!)}f_j\ =&sum_{i=0}^nsum_{j=0}^i(-1)^{i}(-1)^jinom{n}{j}·inom{n-j}{i-j}f_j\ =&sum_{j=0}^n(-1)^jinom{n}{j}f_jsum_{i=j}^n(-1)^iinom{n-j}{i-j}\ &i←i-j\ =&sum_{j=0}^n(-1)^jinom{n}{j}f_jsum_{i=0}^{n-j}(-1)^{i+j}inom{n-j}{i}\ =&sum_{j=0}^nf_jinom{n}{j}sum_{i=0}^{n-j}(-1)^{i}inom{n-j}{i}\ =&sum_{j=0}^nf_jinom{n}{j}[n==j]\ =&f_n end{align} ]

    倒数第二步可以把后面那一坨变为 ((1-1)^{n-j}) 显然等价于 ([n==j])

    于是就有

    [f_n=sum_{i=0}^ninom{n}{i}g_iquad↔quad g_n=sum_{i=0}^n(-1)^{n-i}inom{n}{i}f_i ]

    可以令 (G_n=(-1)^ng_n) 再带入最上面的式子,就有了一样的形式了。


    应用

    假设要求计数 恰好 (k) 个某物的方案数,(1leq kleq n)

    1.我们令 (g_i) 表示 恰好 (i) 个某物的方案数,(f_i)至多 (i) 个某物的方案数。

    这个满足 (f_k=sumlimits_{i=0}^kdisplaystyleinom{k}{i}g_i) ,假设我们能求出 (f_{0,1,2,..k}) ,就可以用二项式反演求回 $ g_k=sum_{i=0}k(-1){k-i}displaystyleinom{k}{i}f_i $了。

    2.我们令 (g_i) 表示 恰好 (i) 个某物的方案数,(f_i)至少 (i) 个某物的方案数。

    这个满足 (f_k=sumlimits_{i=k}^ndisplaystyleinom{i}{k}g_iquad ↔quad g_k=sumlimits_{i=k}^n(-1)^{i-k}displaystyleinom{i}{k}f_i)

    不会证,所以暴力拆开。

    [egin{align} &sum_{i=k}^ninom{i}{k}g_i\ =&sum_{i=k}^ninom{i}{k}sum_{j=i}^n(-1)^{j-i}inom{j}{i}f_j\ =&sum_{i=k}^nsum_{j=i}^ninom{j}{i}inom{i}{k}(-1)^{j-i}f_j\ =&sum_{i=k}^nsum_{j=i}^ninom{j}{k}inom{j-k}{i-k}(-1)^{j-i}f_j\ =&sum_{j=k}^nf_jsum_{i=k}^j(-1)^{j-i}inom{j}{k}inom{j-k}{i-k}\ &i←i-k\ =&sum_{j=k}^nf_jinom{j}{k}sum_{i=0}^{j-k}(-1)^{j-k-i}inom{j-k}{i}\ =&sum_{j=k}^nf_jinom{j}{k}[j==k]\ =&f_k end{align} ]

    于是也可以先求出 (f_{0,1,2...k}) 再二项式反演回 (g_k) 了。

    这个貌似就是广义容斥,把求恰好的问题转化为求至多,至少的问题。

    例题

    [post cid="969" cover="http://"/]

    个人博客地址: www.moyujiang.com 或 moyujiang.top
  • 相关阅读:
    你爱的不爱你,转身是幸福
    按字节长度截取字符串(支持截取带HTML代码样式的字符串)
    存储过程操作类
    C# 拖动控件
    文件同步类
    c# 动态改变控件大小的方法
    虚拟世界改变现实 盛大兴建永恒之塔
    c#百钱买百鸡
    序列化类
    DLL专题之MFC规则库和扩展库
  • 原文地址:https://www.cnblogs.com/moyujiang/p/14906379.html
Copyright © 2020-2023  润新知