生成函数trick
生成函数trick
因为是很小的trick,所以标题字号也非常小(雾)
本文记录一些常用的推式子的东西,持续更新
牛顿二项式定理
\[{(1+x)^m}=\sum_{i\geq 0} {m\choose i}x^i
\]
注意m是实数。而当m为负数,前面是\((1-x)=(1+(-x))\)时有个非常好的性质:
\[(1−x)−n=∑i≥0(−ni)(−x)i=∑i≥0−ni_i!(−1)ixi=∑i≥0n¯ii!xi=∑i≥0(n+i−1)i_i!xi=∑i≥0(n−1+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}
\]
很多时候就是这些小式子导致推不出来...
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· 用99元买的服务器搭一套CI/CD系统
· Excel百万数据如何快速导入?
· ShadowSql之.net sql拼写神器