生成函数trick

生成函数trick

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

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

牛顿二项式定理

[{(1+x)^m}=sum_{igeq 0} {mchoose i}x^i ]

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

[egin{aligned} (1-x)^{-n} &=sum_{i geq 0}left(egin{array}{c} -n \ i end{array} ight)(-x)^{i} \ &=sum_{igeq 0}frac{-n^{underline{i}}}{i!} (-1)^i x^i\ &=sum_{igeq 0}frac{n^{overline{i}}}{i!}x^i \&=sum_{igeq 0}frac{(n+i-1)^{underline{i}}}{i!}x^i \&=sum_{i geq 0}left(egin{array}{c} n-1+i \ i end{array} ight) x^{i} end{aligned} ]

组合数恒等式:顶变

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

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

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

各种变形:

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

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

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

斯特林数拆下降幂

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

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

[m^{k}=sum_{i=0}^{k}left{egin{array}{l} k \ i end{array} ight} i!{mchoose i}=sum_{i=0}^{k}left{egin{array}{l} k \ i end{array} ight} m^{underline{i}} ]

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

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

小等式

[{nchoose k}{kchoose i}={nchoose i}{n-ichoose k-i} ]

变形:

[{nchoose i}{nchoose k}={nchoose i+k}{i+kchoose i} ]

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

原文地址:https://www.cnblogs.com/lcyfrog/p/13915506.html