生成函数 学习笔记
生成函数 学习笔记
有一部分没地方写的组合数学,先写这里。
0. pre - learning
1. 上升/下降幂:
称为
同理:
称为
2. 组合数:
组合数的几个重要公式:
对称性:
吸收性:
递推:
证明:不妨直接拆组合数。
也可以考虑杨辉三角。
上指标求和:
证明:
因为
,所以可以用上文的递推公式将右式的前两项合并得到 。 接着,可以将
和 合并得到 。 以此类推即可。
3. (广义)二项式定理:
我们考虑更改组合数的定义。
广义二项式系数:
广义二项式定理:
证明需要求导,不会。
上指标反转:
证明:
考虑。 等价于右式。证毕。
4. 多项式定理:
对于
证明:考虑组合意义。
先从
中选择 个式子,方案数为 。 接着,从
中选择 个式子,方案数为 。
最后,从
中选择 个式子,方案数为 。 由乘法原理,方案数为
。 能够化简为:
。 证毕。
值得注意的是,这个问题等价于可重集的排列方案数。
1. 幂级数展开
由于广义二项式定理的存在,我们可以对某些式子进行展开。以下是几个例子:
需要记住另外几个常见展开:
可以使用泰勒公式证明,但是 OI 中没必要。
注:我们不关心是否收敛,因为在生成函数中,重要的是系数而非值。
2.OGF
对于数列
OFG 与无标号计数有关。
例:BZOJ3028 食物。
首先分别给出每个条件对应的生成函数。
奇数个:
偶数个:
我们将这些生成函数的式子相乘,得到:
正确性:多项式乘法等价于枚举在每一个对象中选择了多少个。
生成函数可以用来求数列的通项公式。
引入:化简
。 设
,则 。 相减,得:
。 解方程,得:
。
例:求 fib 数列的通项公式。
即求出
依照上例子,我们设生成函数
那么有:
所以
将这个式子进行因式分解,得到
考虑到我们能够计算出形如
于是有:
由于
所以:
按一般方法进行展开,得:
由此,我们得到了 fib 数列的通项公式:
4.EGF
定义一个数列
EGF 一般与有标号计数有关,考虑其组合意义:
假设我们要从
有
令
例:用红蓝绿
不妨设
则:
故答案为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现