反演魔术---二项式反演

反演是一种将难化易常用的手段

一般来说, 它有如下形式:

f(n)=i=0nanig(i)g(n)=i=0nbnif(i)

本质上来说, 反演是一个接线性方程组的过程

0|1常见的反演有:

  • 二项式反演
  • 斯特林反演
  • 莫比乌斯反演
  • 单位根反演

1|0二项式反演

1|1形式一:

 F(n)=i=0n(1)i(ni)G(i)G(n)=i=0n(1)i(ni)F(i)

1|2形式二:

 F(n)=i=0n(ni)G(i)G(n)=i=0n(1)(ni)(ni)F(i)

1|3形式三:

 F(n)=i=nN(1)i(in)G(i)G(n)=i=nN(1)i(in)F(i)

1|4形式四:

 F(n)=i=nN(in)G(i)G(n)=i=nN(1)in(in)F(i)

比较常用的形式是二和四

1|5下面证明形式二为例

1|0引理:

(nj)(ji)=n!j!(nj)!j!i!(ji)!=n!i!(ni)!(ni)!(nj)![(ni)(nj)]!=(ni)(ninj)

证明

 F(n)=i=0n(ni)G(i)i=0n(1)(ni)(ni)F(i)=i=0n(1)(ni)(ni)j=0i(ij)G(j)=i=0nG(i)j=in(1)(nj)(nj)(ji)=i=0nG(i)j=in(1)(nj)(ni)(niij)=i=0n(ni)G(i)j=in(1)(nj)(niij)=i=0n(ni)G(i)j=0ni(1)nij(nij)=i=0n(ni)G(i)(11)(ni)=G(n)

证毕!!!

1|6应用: 错位排列

f(i)为恰好有i位错位的方案数, g(i)=i!

g(n)=n!=i=0nf(i)(ni)

枚举有几位错位,方案之和即为全排列

二项式反演得:

f(n)=i=0n(1)ni(ni)g(i)=i=0n(1)nin!(ni)!=n!i=0n(1)ii!

是不是很奇妙

例题: 已经没有什么好害怕的了

当容斥系数为二项式反演系数时, 可以利用二项式反演加速

斯特林反演下次一定更新!


__EOF__

本文作者Hs-black
本文链接https://www.cnblogs.com/Hs-black/p/12225804.html
关于博主:一名高二OIer, 热爱算法竞赛和数学. 评论和私信会在第一时间回复。或者直接私信我
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Hs-black  阅读(591)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示