普通生成函数
Why so vegetable?
OGF
普通生成函数,也叫OGF,用函数生成数列,一个函数
一些简单的运算:
-
两个函数的线性组合对应于两个序列的线性组合,即
。 -
乘以
对应于右移一个序列 项, 。 -
向左移一个序列
项, 。 -
序列的前缀和为
。证明的话展开即可。
一些有用的序列:
-
二项式序列
由 生成。 -
调和级数
由 生成。 -
用于提取偶数(奇数)项。
用生成函数进行递推:先找递推式,两边用
比如斐波那契数列,
找出关系
则
所以
在解关于
再比如 catalan 数列
对
我们改写一下这个式子,使之不依赖两个给定的初值:
用求根公式解出
这里应该取负号(?)
有两个组合对象构成的集合
和 ,定义 是 和 的并集,那么有 。定义 是 和 的笛卡尔积,定义有序对 的大小 ,那么有 。
现在有一个组合对象构成的集合
例子是背包问题。我们在 link 中已经探讨过了。
EGF
指数生成函数,也叫 EGF,一个函数
一些简单的运算
-
两个函数的线性组合对应于两个序列的线性组合,即
。 -
一次积分对应于右移序列一项,即
。 -
一次求导对应左移序列一项,即
。 -
,即 。所以要么你就带着 卷积,要么改一下这个函数直接 FFT。
现在来考虑 EGF 的组合意义。有一个带标号组合对象构成的集合
则
这个有很大的应用面,比如求如一个带标号的简单无向图是若干个连通分量拼接成的方案数。令
但是最后答案要乘
又如集合划分问题。发现方案数的 EGF 就是
还有第二类斯特林数,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】