生成函数的进一步理解

生成函数

  • 作用:建立函数和数列之间的联系,通过函数的变换来做数列操作

  • 通常把数列映射为一个多项式的系数,然后通过级数求和的方法将多项式变换到一个函数。

  • 实例:

    • f(x)=1+x+x2+x3+,满足x<1
      建立了等差数列<1,1,1,>和函数f(x)=11x
    • 更一般地,多项式f(x)=1+ax+(ax)2+(ax)3+建立数列<1,a,a2,a3,>f(x)=11ax之间之间的联系
  • 斐波那契数列

    • 定义:f(0)=f(1)=1f(n)=f(n1)+f(n2)

    • 推导,令F(x)为斐波那契数列的生成函数

      F(x)=f(0)+f(1)x+f(2)x2+f(3)x3++f(n)xn+xF(x)=f(0)x+f(1)x2+f(2)x3++f(n1)xn+x2F(x)=f(0)x2+f(1)x3++f(n2)xn+F(x)(xF(x)+x2F(x))=F(x)(1xx2)=xF(x)=x1xx2

    • F(x)因式分解,得到

      F(x)=45x555(2x+1)2=155(2x+5+1)+1+55(2x+51)=15(11512x+115+12x)

      如果把f(x)115+12x看做一个公比为5+12的等差数列的生成函数,那么容易得到f(n)=[xn]F(x)=15((512)n+(5+12)n1)

用函数(多项式代数)表示各种数列

  • 相比于直接操作函数,多项式之间的运算更容易,因此我们往往先把一个数列的生成函数写出来,然后分析数列需要的操作通过函数的操作来表示,而这个操作运用多项式的运算来完成更会好。
  • 各个操作之间的对应,令函数F(x)是数列<a0,a1,a2,,an>的生成函数
    • cF(x)→<ca0,ca1,ca2,,can>:数列倍增
    • xF(x)→<0,a0,a1,a2,,an>:数列右移,左边补0
    • F(x)a0x→<a1,a2,,an>:数列左移
    • F1(x)F2(x)→<a1,0a2,0,a1,1a2,1,a1,2a2,2,,a1,na2,n>:数列对应项加减
    • F(x)→<a1,2a2,3a3,,nan>:数列乘幂次+左移
    • F1(x)F2(x)=k=0,ika1,ia2,kixk数列卷积

卷积的应用

  • 记数列<a0,a1,a2,,an>的生成函数为F(x)
  • 求数列前n项和:[xn]F(x)1x
  • 求自然数平方和

11x↔<1,1,1,,1,>1(1x)2↔<1,2,3,,n,>1(1x)3↔<1,3,6,10,,n(n+1)2,>x(1x)3↔<0,1,3,6,10,,n(n+1)2,>1+x(1x)3↔<1,4,9,16,25,>(xn)x(1+x)(1x)4=i=1ni2(1x)4=n0(n+33)xni=1ni2=(n+23)+(n+13)

指数生成函数

 F(x)=a0+a1x+a2x22!+a3x33!+=ex

现在看一下两个指数生成函数的卷积FG,设F对应的数列是<a>G对应的数列是<b>。现在考虑我们要求卷积完后第4项的系数

c4=a0b40!4!+a1b31!3!+a2b22!2!+a4b04!0!

我们希望最后还是一个指数生成函数的形式,所以考虑给x4乘上一个14!,那么c4就要乘上一个4!

4!c4=4!0!4!a0b4+4!1!3!a1b3+4!2!2!a2b2+4!3!1!a3b1+4!4!0!a4b0=(40)a0b4+(41)a1b3+(42)a2b2+(43)a3b1+(44)a4b0

因此

fg={r=0arxrr!}{s=0bsxss!}=r,s0arbsr!s!xr+s=n0xn{r+s=narbsr!s!}[xnn!](fg)r+s=nn!arbsr!s!=r(nr)arbnr

扩展到更多项

fm=n0i=1mpi=ni=1mpi=napii=1mpi=npi!xn[xnn!]fm=p1+p2++pm=nn!p1!p2!pm!ap1ap2apm=p1+p2++pm=n(np1,p2,,pm)ap1ap2apm

Dirichlet生成函数

F(x)=a1+a22s+a33s+a44s+

现在看一下两个Dirichlet生成函数的卷积FG,设F对应的数列是<a>G对应的数列是<b>
cn是卷积后的第n项,则

cn=i×j=naibj=d|nadbnd

应用

ζ(s)=1+12s+13s+(ai=1)

  • ζ(s)2的第n项的系数表示d(n),即n的约数的个数
  • 1ζ(s)的第n项的系数表示μ(n)
  • A(s)=B(s)ζ(s),则B(s)=A(s)ζ(s),得到bn=d|nadμ(nd)

参考链接

jyyyyds,特别形象

posted @   Arashimu  阅读(129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示