生成函数浅谈
羊驼说,要当老师,所以强大的羊驼教会了我们生成函数。
羊驼说,我们有卷积,所以生成函数的问题通常可以在带
普通型生成函数
数列
而数列
羊驼说,写成展开形式形式太麻烦,所以羊驼教会了我们封闭形式。
设
则
所以
对于无穷数列也是同理,我们可以假定它收敛,得到封闭形式。
设
则
所以
下面是一些常用的无穷数列普通型生成函数的封闭形式和展开形式的对应关系:
指数型生成函数
羊驼说,她不会组合数,所以就有了指数型生成函数。
指数型生成函数通常用来消掉组合数中的阶乘,并且一般是无穷数列。
对于指数型生成函数的封闭形式和展开形式来说,二者对应关系如下:
因此,指数型生成函数的封闭形式通常是
下面是一些常用的无穷数列指数型生成函数的封闭形式和展开形式的对应关系:
于是我们就学会了生成函数。
例题
羊驼说,要有例题,所以我们来到了 P2000 拯救世界。
两位大神的召唤方法显然都可以写成封闭形式,只要约一下分,就可以得到最终的封闭形式。
金:
木:
水:
火:
土:
金:
木:
水:
火:
土:
乘起来可得:
再转换回展开形式:
答案即为
可以用
羊驼说,这种板子题太简单,所以就有了 P4841 城市规划
我们枚举
同时我们已知
写出生成函数:
多项式求逆即可。
斐波那契通项公式
绝帆看到没有斐波那契通项公式,非常不满,所以连夜来补一下。
我们知道斐波那契的递推式是
写成生成函数的形式:
接下来就是推柿子:
要求通项公式,下一步就应该要展开了,但是我们背的展开公式中并没有这个,所以要想办法变为见过的样子。
分母处是一个二次多项式,看起来能拆成
得到
现在拆项,得到
如果必要需要扩域。
泰勒展开
如果
多项式运算之牛顿迭代
一个多项式运算可以看作求解
利用
化简得
多项式求逆
多项式开根
多项式 exp
更多技巧
- 多个式子的乘积不好做,求
加起来,再求 exp。
付公主的背包
显然一个物品的生成函数是
发现
设
还有更神仙的做法,因为
本文来自博客园,作者:mikefeng,转载请注明原文链接:https://www.cnblogs.com/mikefeng/p/17367986.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下