生成函数

定义#

序列a的普通生成函数(OGF),定义为形式幂级数:

F(x)=nanxn

a既可以是有穷序列,也可以是无穷序列,常见例子:

1.序列a=<1,2,3>OGF1+2x+3x2

2.序列a=<1,1,1,>OGFn0xn

3.序列a=<1,2,4,>OGFn02nxn

4.序列a=<1,3,5,>OGFn0(2n+1)xn

如果序列a有通项公式,那么它的OGF的系数就是通项公式

基本运算#

考虑两个序列abOGF,分别是F(x)G(x),那么有

F(x)±G(x)=n(an±bn)xn

因为F(x)±G(x)是序列<an±bn>OGF

考虑乘法运算,即卷积

F(x)G(x)=nxni=0naibni

因为F(x)G(x)是序列<i=0naibni>OGF

封闭形式#

形式幂级数形式不好表示,考虑转化为封闭形式

a=<1,1,1,>OGF F(x)=n0xn可以列出

F(x)=1+x+x2+xF(x)=x+x2+x3+xF(x)+1=F(x)F(x)=11x

这就是n0xn的封闭形式

考虑等比数列<1,p,p2,p3,>的普通生成函数G(x)=n0pnxn,有

G(x)px+1=G(x)G(x)=11px

例题#

1.a=<0,1,1,1,>

xF(x)+x=F(x)F(x)=x1x

2.a=<1,0,1,0,1,>

x2F(x)+1=F(x)F(x)=11x2

3.a=<1,2,3,4,>

F(x)=n0(n+1)xnn=n+1F(x)=n1nxn1=n0(xn)=(11x)=1(1x)2

4.an=(mn)

F(x)=n(mn)xn1mn=(1+x)m

5.an=(n+mn)

归纳法证明:an=1(1x)m+1

m=0,F(x)=11xm>01(1x)m+1=1(1x)m11x=(n0(m+n1n))(n0xn)=n0(i=0n(m1+ii)xi1nixni)=n0(n+mn)xn

斐波那契数列生成函数#

posted @   lovelyred  阅读(214)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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】
点击右上角即可分享
微信分享提示
CONTENTS