普通生成函数学习笔记
现在我们考虑有一个序列 \((a_1,a_2,a_3,\cdots,a_n,\cdots)\)。我们将这个序列作为形式幂级数 \(A(x)=\sum_{n\ge0}{a_{n} x^n}\) 的常数项序列。\(A(x)\) 就是序列 \(\{a_i\}\) 的生成函数。在生成函数中,类似形式幂级数,\(x\) 的具体取值是没有意义的,我们仅仅只是用 \(A(x)\) 作为一个承载序列的容器,用 \(x\) 的不同次幂来区分不同的位置。
生成函数之间的运算
考虑我们现在有两个生成函数 \(A(x)\) 和 \(B(x)\),分别是序列 \(\{a_i\}\) 和 \(\{b_i\}\) 的生成函数。
使用生成函数推导斐波那契数列的通项公式。
斐波那契数列是一个数列 \(\{f_i\}\) 满足 \(f_{i-2}+f_{i-1}=f_i,f_0=1,f_1=1\)。
我们考虑它的生成函数 \(F(x)=\sum_{n\ge 0}f_n x^n\),明显的,\(f_{i-2}+f_{i-1}=f_i\) 意即 \(x^2F(x)+xF(x)+1=F(x)\)(\(+1\) 是为了配平常数项为 \(1\))。
解此方程得 \(F(x)=\dfrac{1}{x^2+x-1}\)。
通过有理分式的知识,我们知道,设
则待定系数 \(a,b\) 得
解得 \(a=-\dfrac{1}{\sqrt{5}}\phi_-,b=\dfrac{1}{\sqrt{5}}\phi_+\)
由于 \(kA(x)=\sum_{n\ge 0}{ka_n x^n},(A(x)+B(x))=\sum_{n\ge 0}{(a_n+b_n)x^n}\)
以及 \(\dfrac{1}{1-ax}=\sum_{n\ge 0}a^nx^n\)
展开 \(\phi_-\) 和 \(\phi_+\),就得到我们的最终 \(\{f_n\}\):