序列a的普通生成函数(OGF),定义为形式幂级数:
F(x)=∑nanxn
a既可以是有穷序列,也可以是无穷序列,常见例子:
1.序列a=<1,2,3>的OGF是1+2x+3x2
2.序列a=<1,1,1,…>的OGF是∑n≥0xn
3.序列a=<1,2,4,…>的OGF是∑n≥02nxn
4.序列a=<1,3,5,…>的OGF是∑n≥0(2n+1)xn
如果序列a有通项公式,那么它的OGF的系数就是通项公式
基本运算#
考虑两个序列a和b的OGF,分别是F(x)和G(x),那么有
F(x)±G(x)=∑n(an±bn)xn
因为F(x)±G(x)是序列<an±bn>的OGF
考虑乘法运算,即卷积
F(x)∗G(x)=∑nxnn∑i=0aibn−i
因为F(x)∗G(x)是序列<∑ni=0aibn−i>的OGF
封闭形式#
形式幂级数形式不好表示,考虑转化为封闭形式
a=<1,1,1,…>的OGF F(x)=∑n≥0xn可以列出
F(x)=1+x+x2+…xF(x)=x+x2+x3+…xF(x)+1=F(x)F(x)=11−x
这就是∑n≥0xn的封闭形式
考虑等比数列<1,p,p2,p3,…>的普通生成函数G(x)=∑n≥0pnxn,有
G(x)px+1=G(x)G(x)=11−px
1.a=<0,1,1,1,…>
xF(x)+x=F(x)F(x)=x1−x
2.a=<1,0,1,0,1,…>
x2F(x)+1=F(x)F(x)=11−x2
3.a=<1,2,3,4,…>
F(x)=∑n≥0(n+1)xn令n=n+1F(x)=∑n≥1nxn−1=∑n≥0(xn)′=(11−x)′=1(1−x)2
4.an=(mn)
F(x)=∑n(mn)xn1m−n=(1+x)m
5.an=(n+mn)
归纳法证明:an=1(1−x)m+1
m=0时,F(x)=11−xm>0时1(1−x)m+1=1(1−x)m11−x=(∑n≥0(m+n−1n))(∑n≥0xn)=∑n≥0(n∑i=0(m−1+ii)xi∗1n−ixn−i)=∑n≥0(n+mn)xn
斐波那契数列生成函数#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】