二项式反演
第一种形式:
f(n)=n∑i=0(ni)g(i)⇔g(n)=n∑i=0(−1)n+i(ni)f(i)
第二种形式:
f(n)=m∑i=n(in)g(i)⇔g(n)=m∑i=n(−1)i−n(in)f(i)
证明:
f(n)=m∑i=n(in)m∑j=i(−1)j−i(ji)f(j)=m∑j=nj∑i=n(in)(ji)(−1)j−if(j)=m∑j=nf(j)(jn)j−n∑i=0(j−ni)(−1)j−i−n=m∑j=nf(j)(jn)(−1)n−jj−n∑i=0(j−ni)(−1)−i=f(n)
常用公式#
公式 1#
-
f(n)=n∑i=0(−1)i(ni)g(i)⇔g(n)=n∑i=0(−1)i(ni)f(i)
证明:这个也是市面上的一种二项式反演。
f(n)=n∑i=0(−1)i(ni)i∑j=0(−1)j(ij)f(j)=n∑j=0f(j)(nj)n−j∑i=0(−1)i+2j(n−ji)=f(n)
公式 2#
-
f(S)=∑S⊆Tg(T)⇔g(S)=∑S⊆T(−1)|T|−|S|f(T)
证明:这个也被称作子集反演。
g(S)=∑S⊆T(−1)|T|−|S|f(T)=∑S⊆T(−1)|S|−|T|∑T⊆Ug(U)=∑S⊆Ug(U)∑T′⊆U−S(−1)|T′|=∑S⊆Ug(U)|U−S|∑k=0(−1)k(|U−S|k)=∑S⊆Ug(U)[(U−S)=∅]=g(S)
公式 3#
- f(n,m)=n∑i=0m∑j=0(ni)(mj)g(i,j)⇔g(n,m)=n∑i=0m∑j=0(ni)(mj)(−1)n+m−i−jf(i,j)
证明与之前类似,这里不再证明。
这里简单一题,整个二项式反演不管是一元函数,二元函数,还是说我认为也可以推广到多元函数,只有两个变化,第一个是和式到底是从 0 开始还v是从 n,m 开始 ,第二个是乘上的 (−1) 的多少次方。那么不管是从 0 开始还是从 n,m 开始,后面乘上的这个项的系数要么两边都是 i+j ,要么第一个式子没有后面是 n+m−i−j,前者开始项的改变只改变二项式系数。
所以我们可以轻易得到其余的三个二元二项式反演。
上面这段话所表示的规律也可以推广到子集反演上面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】