生成函数法求序列通项公式

前置知识#

生成函数的概念以及运算

基本方法#

生成函数求通项公式的基本思想是将序列的生成函数转成封闭形式,再用其他方法将其转成开放形式,取其系数就是通项公式。

斐波那契数列与卢卡斯数列#

  • Fibonacci 数列的定义是:F0=0,F1=1,Fn=Fn1+Fn2(n>1)

  • Lucas 数列的定义是:L0=2,L1=1,Ln=Ln1+Ln2(n>1)

发现它们的定义十分相似。

对于 Fibonacci 数列,我们有:

Fn=(1+52)n(152)n5

对于 Lucas 数列,我们有:

Ln=(1+52)n+(152)n

待定系数求通项公式#

定义 Lucas 数列的生成函数 L(x)。由递推式,我们有:

L(x)=x2L(x)+xL(x)+2xL(x)=2x1xx2

我们考虑通过等比数列的生成函数来表示 L(x)。用待定系数法,设有:

A1ax+B1bx=2x1xx2

可以得到:

{A+B=2Ab+aB=1a+b=1ab=1

解得

{A=1B=1a=1+52b=152

所以

L(x)=n0((1+52)n+(152)n)xnLn=(1+52)n+(152)n

同样地,对于 Fibonacci 数列,我们有:

F(x)=x2F(x)+xF(x)+xF(x)=x1xx2

待定系数,解得

{A=15B=15a=1+52b=152

所以有

F(x)=n015((1+52)n(152)n)xnFn=15((1+52)n(152)n)

方法总结#

  • 由递推式将 An 写成方程。
  • 将方程中的数换成生成函数。
  • 检查正确性,是否有系数偏差,将缺失的部分补上。
  • 解方程得到封闭形式。
  • 将封闭形式转为开放形式,其系数即为通项公式。

广义二项式定理#

我们可以将 (x+y) 的任意正整数次幂写成:

(x+y)n=k=0n(nk)xkynk=[a0an][(n0)(nn)][b0bn](nN+)

将其拓展到实数域:

(αk)=α(α1)(α2)(αk+1)k!=(α)kk!(x+y)α=k0(αk)xkynk

证明#

数学归纳法。

具体过程不会咕了。

posted @   LewisLi  阅读(1070)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩