生成函数trick

生成函数trick

因为是很小的trick,所以标题字号也非常小(雾)

本文记录一些常用的推式子的东西,持续更新

牛顿二项式定理

\[{(1+x)^m}=\sum_{i\geq 0} {m\choose i}x^i \]

注意m是实数。而当m为负数,前面是\((1-x)=(1+(-x))\)时有个非常好的性质:

\[(1x)n=i0(ni)(x)i=i0ni_i!(1)ixi=i0n¯ii!xi=i0(n+i1)i_i!xi=i0(n1+ii)xi
\]

组合数恒等式:顶变

有个用了好多次的恒等式,而且大眼看不容易看出来:

\[\sum_{i=0}^n {i\choose m}={n+1\choose m+1} \]

可以理解为枚举最后一个选的位置,还剩下\(m\)个要选,一共\(m+1\)

各种变形:

\[\sum_{i=0}^n {m+i-1\choose i}={m+n\choose m}={m+n\choose n} \]

证明(也不算证明,都是一个式子:

\[\sum_{i=0}^n {m+i-1\choose i}= \sum_{i=0}^n {m+i-1\choose m-1} =\sum_{i=0}^{m-1+n} {i-1\choose m-1}={m+n\choose m} \]

斯特林数拆下降幂

为了凑数写上了... 反正也挺常用的

一看到\(m^k\),就要想到

\[m^{k}=\sum_{i=0}^{k}\left\{ki
\right\} i!{m\choose i}=\sum_{i=0}^{k}\left\{ki
\right\} m^{\underline{i}} \]

可以用组合意义证明,具体看第二类斯特林数的学习笔记。

而这个东西可以做很多事情,大部分是直接带入题目要求的式子(比如求自然数幂和),也有用组合意义,枚举i,转化成计算有多少个集合包含选的方案。

小等式

\[{n\choose k}{k\choose i}={n\choose i}{n-i\choose k-i} \]

变形:

\[{n\choose i}{n\choose k}={n\choose i+k}{i+k\choose i} \]

很多时候就是这些小式子导致推不出来...

posted @   lcyfrog  阅读(255)  评论(0编辑  收藏  举报
编辑推荐:
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
阅读排行:
· 感觉程序员要被 AI 淘汰了?学什么才有机会?
· BotSharp + MCP 三步实现智能体开发
· “你觉得客户需要”是杀死TA的最后一根稻草 | IPD集成产品开发
· dify升级,PostgreSQL数据库字段更新处理
· AI团队比单打独斗强!CrewAI多智能体协作系统开发踩坑全解析
点击右上角即可分享
微信分享提示