序列 (a=[a_0,a_1,a_2,a_3,a_4,...]) 的普通型生成函数,定义为形式幂级数: (F(x)=sumlimits_{i=0}^{n}a_ix^i) 。
若序列 (a) 拥有通项公式,那么 (a_i) 就等于通项公式。
再设 (G(x)=sumlimits_{i=0}^{n}b_ix^i) ,有
(F(x)pm G(x)=sumlimits_{i=0}^{n}(a_ipm b_i)x^i)
(F(x)G(x)=sumlimits_{i=0}^{n}x^isumlimits_{j=0}^{i}a_jb_{i-j})
加减法是对应系数加减,乘法理所当然是卷积,除法要用多项式求逆。
封闭形式
常数序列 ([1,1,1,1,1...]) 的生成函数,即 (a_i=1) 。
发现可以乘以一个 (x) ,再加上一个 (1) ,使得整个序列往右移动一个位置 (xF(x)+1=F(x)) ,解得 (F(x)=frac{1}{1-x}) 。
等比数列的序列 ([1,p,p^2,p^3,p^4,...]) 的生成函数 (F(x)=sumlimits_{i=0}^{n}p^ix^i) ,即 (a_i=p^i) 。
发现可以乘以一个 (px) ,再加上一个 (1) ,使得整个序列往右移动一个位置 (pxF(x)+1=F(x)) ,解得 (F(x)=frac{1}{1-px}) ,这个是等比数列的封闭形式。
练习
- 序列 ([0,1,1,1,1...]) 的生成函数,即 (a_i=[i eq1]) 。
这个看起来就是等比数列去掉了第0项,那么故技重施乘以一个 (x) ,再加上一个 (x) ,使得整个序列往右移动一个位置 (xF(x)+x=F(x)) ,解得 (F(x)=frac{x}{1-x})
- 序列 (a_i=[iequiv rmod m]) 。
右移 (m) 项(乘以 (x^m) ),再补上缺少的开头(加上 (x^r) ),使得整个序列往右移动两个位置 (x^mF(x)+x^r=F(x)) ,解得 (F(x)=frac{x^r}{1-x^m}) 。
特别的,当m=2,r=0时,为偶数项:(F(x)=frac{1}{1-x^2}),当m=2,r=1时,为奇数项 (F(x)=frac{x}{1-x^2}) 。
- 序列 ([1,2,3,4,5,...]) 的生成函数,即 (a_i=i+1) 。
这种系数是某个和 (i) 有关的,可能会和求导有关系。 (F(x)=sumlimits_{i=0}^{n}(i+1)x^i) ,看起来是多项式 (sumlimits_{i=0}^{n}x^{i+1}=frac{1}{1-x}) 的导数,故解得 (F(x)=(frac{1}{1-x})'= frac{1}{(1-x)^2}) 。
- 序列 ([0,1,2,3,4,5,...]) 的生成函数,即 (a_i=i) 。
这个序列先减去一个 (1) ,再除以一个 (x) ,使得整个序列往左移动一个位置,变成上面的结果,即 (frac{F(x)-1}{x}=frac{1}{(1-x)^2}) ,解得 (F(x)=frac{x}{(1-x)^2}+1)
-
(a_i=C_n^i) :显然 (F(x)=(1+x)^n)
-
(a_i=C_{n+i}^i) :解得 (F(x)=frac{1}{(1-x)^{n+1}}) ,要用归纳法证明 。
详见具体数学P281。