生成函数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  阅读(254)  评论(0编辑  收藏  举报
编辑推荐:
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
阅读排行:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· 用99元买的服务器搭一套CI/CD系统
· Excel百万数据如何快速导入?
· ShadowSql之.net sql拼写神器
点击右上角即可分享
微信分享提示