生成函数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}
]
很多时候就是这些小式子导致推不出来...