二项式定理:
(a+b)n=n∑i=0(ni)aibn−i
很好理解。
我们经常会使用的式子:
(1+x)n=n∑i=0xi(ni)
容斥定理:
∣∣
∣∣n⋃i=1Si∣∣
∣∣=∑i|Si|−∑i<j|Si∩Sj|+∑i<j<k|Si∩Sj∩Sk|−⋯+(−1)m−1∑ai<ai+1∣∣
∣∣m⋂i=1Sai∣∣
∣∣+⋯+(−1)n−1|S1∩⋯∩Sn|
证明:
考虑某个元素被 m 个集合所包含,它对左侧的贡献为 1 。考虑它对右侧的贡献:
m∑i=1(−1)i−1(mi)=−m∑i=1(−1)i(mi)=1−m∑i=0(−1)i(mi)=1−(1−1)m=1
二项式反演:
fn 表示恰好使用 n 个不同元素形成特定结构的方案数, gn 表示从 n 个不同元素中选出 i≥0 个元素形成特定结构的总方案数。
那么:
gn=n∑i=0(ni)fi
已知 gn 求 fn :
fn=n∑i=0(ni)(−1)n−igi
这就是二项式反演。
破防了。推了一个小时。证明:
首先需要的两个组合数的性质:
-
(nm)(mk)=(nk)(n−km−k)
-
n∑i=0(ni)(−1)i=[n=0]
第一个从定义就可以推得,但建议能够对这个式子有一个理解,不要用形式上的证明替代自己的理解,这样印象更深。第二个式子就是当 a=1,b=−1 时用二项式定理,但是当 n=0 时是特殊条件。
fn=n∑i=0(ni)(−1)n−igi=n∑i=0(ni)(−1)n−ii∑j=0(ij)fj=n∑i=0i∑j=0(ni)(−1)n−i(ij)fj=n∑j=0fjn∑i=j(ni)(ij)(−1)n−i=n∑j=0fjn∑i=j(nj)(n−ji−j)(−1)n−i=n∑j=0fj(nj)n∑i=j(n−ji−j)(−1)n−i
这里再想法凑出上面的性质2,令 k=i−j 。
n∑j=0fj(nj)n∑i=j(n−ji−j)(−1)n−i=n∑j=0fj(nj)n−j∑k=0(n−jk)(−1)k(−1)n−j=n∑j=0(−1)n−jfj(nj)n−j∑k=0(n−jk)(−1)k=n∑j=0(−1)n−jfj(nj)[n=j]=fn
证完啦。
本文作者:星影流灿
本文链接:https://www.cnblogs.com/yduck/p/18334849
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步