二项式反演
式子
gn=n∑i=0Cin∗fi⇔fn=n∑i=0(−1)n−i∗Cin∗gi
证明
将左式带入右式:
fn=n∑i=0(−1)n−i∗Cin∗gi=n∑i=0(−1)n−i∗Cin∗(i∑j=0Cji∗fj)=n∑j=0(fj∗n∑i=j((−1)n−i∗Cin∗Cji))
∵Cin∗Cji=Cjn∗Ci−jn−j
n∑j=0(fj∗n∑i=j((−1)n−i∗Cin∗Cji))=n∑j=0(fj∗Cjnn∑i=j((−1)n−i∗Ci−jn−j))
令 k=i−j,得:
n∑j=0(fj∗Cjnn∑i=j((−1)n−i∗Ci−jn−j))=n∑j=0(fj∗Cjnn−j∑k=0((−1)n−j−k∗Ckn−j))
∵∑n−jk=0((−1)n−j−k∗Ckn−j)=(1−1)n−j
∴∑n−jk=0((−1)n−j−k∗Ckn−j)=[(n−j)=0]
n∑j=0(fj∗Cjnn−j∑k=0((−1)n−j−k∗Ckn−j))=fn∗Cnn=fn
证毕。
应用
常用形式
gn=n∑i=0Cin∗fi⇔fn=n∑i=0(−1)n−i∗Cin∗gi
gk=n∑i=kCki∗fi⇔fk=n∑i=k(−1)i−k∗Cki∗gi
实际求解中可以用各种方法求出相对好求的一侧,再利用二项式反演求解另一侧问题。
多数需要用到二项式反演的问题特征是需要求恰好的方案数,同时至多至少有相对容易的求解方法。
例子
例 1
错排问题:n 把钥匙开对应 n 把锁,求一把锁也不开的钥匙排列个数。
至多模型, gn=n!。
例 2
懒,直接贴图:

本文作者:sunzz3183
本文链接:https://www.cnblogs.com/sunzz3183/p/18354432
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】