生成函数学习笔记
普通生成函数#
我们定义序列<a>的普通生成函数为
∑nanxn
设序列<a>,<b>的生成函数分别为F(x),G(x),我们定义加法
F(x)+G(x)=∑n(an+bn)xn
这就是说,F(x)+G(x)是序列<a+b>的生成函数.
我们定义乘法为他们的卷积
F(x)G(x)=∑nxnn∑i=0aibn−i
即F(x)G(x)是序列⟨∑ni=0aibn−i⟩的生成函数.
一些有趣的trick#
在生成函数的定义下,设⟨1,1,1...⟩的生成函数为F(x),我们有
F(x)x+1=F(x)
我们怎么理解这件事?先考虑F(x)x所对应的原序列为⟨0,1,1,1,1,⟩,想要变回原序列,我们只需让这个序列的零次项系数变为1,也就是+1即可.
由上式,我们可以得到
F(x)=11−x
类似地,我们可以得到等比数列⟨1,p2,p3,p4...⟩的生成函数G(x)满足
G(x)px+1=G(x)G(x)=11−px
这是生成函数的常见手段.
麦克劳林展开#
通过麦克劳林展开可以计算生成函数.,计算公式如下:
f(x)=∞∑i=0f(n)(0)i!xn
其中fn(0)表示f(x)在x0=0处的n阶导数.利用麦克劳林展开,我们可以快速计算.
广义二项式#
反转上指标#
所谓反转上指标,级考虑组合数中出现负数时,我们将其变为正数.下面给出公式.
(nm)=(−1)m(m−n−1m)
广义二项式定理#
∀a,b,n∈R,(a+b)n=n∑i=0(ni)aibn−i
值得指出的是当n∉Z+时,i无法求和到n,所以i将求和到+∞.
利用上述工具,用生成函数解体变得轻而易举.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App