1. 定义
实数序列a0,a1,…,ak,…a_0,a_1,\dots,a_k,\dotsa0,a1,…,ak,…的生成函数是无穷级数
G(x)=a0+a1x+a2x2+⋯+akxk+⋯=∑k=0∞akxk
G(x)=a_{0}+a_{1} x+a_{2} x^{2}+\dots+a_{k} x^{k}+\cdots=\sum_{k=0}^{\infty} a_{k} x^{k}
G(x)=a0+a1x+a2x2+⋯+akxk+⋯=k=0∑∞akxk
2. 定义:什么是递推关系
序列{an}\{a_n\}{an}的递归关系是用序列的一个或多个前一项表示an的方程,即a0,a1,…,an−1a_0,a_1,\dots, a_{n-1}a0,a1,…,an−1,对于所有整数nnn,其中n≥n0n\geq n_0n≥n0,其中n0n_0n0是非负整数。
- 例子
-
汉诺塔
hn=2hn−1+1,h1=0h_n = 2h_{n-1}+1,\quad h_1=0hn=2hn−1+1,h1=0 -
斐波那契序列
Fn=Fn−1+Fn−2,F1=F2=1F_n = F_{n-1}+F_{n-2},\quad F_1 = F_2 = 1Fn=Fn−1+Fn−2,F1=F2=1 -
卡特兰数
例:用内对角线将一个凸n多边形划分成三角形的并,有多少个不同的划分方法?
Cn+1=C2Cn+C3Cn−1+C4Cn−2+⋯+Cn2C4+Cn−1C3+CnC2C_{n+1}=C_{2} C_{n}+C_{3} C_{n-1}+C_{4} C_{n-2}+\cdots+C_{n 2} C_{4}+C_{n-1} C_{3}+C_{n} C_{2}Cn+1=C2Cn+C3Cn−1+C4Cn−2+⋯+Cn2C4+Cn−1C3+CnC2
2(n−3)Cn=n(C3Cn−1+C4Cn−2+⋯+Cn−2C4+Cn−1C3)2(n-3) C_{n}=n\left(C_{3} C_{n-1}+C_{4} C_{n-2}+\cdots+C_{n-2} C_{4}+C_{n-1} C_{3}\right)2(n−3)Cn=n(C3Cn−1+C4Cn−2+⋯+Cn−2C4+Cn−1C3) -
错排问题
设nnn个数1,2,…,n1,2,…,n1,2,…,n错排的数目为DnD_nDn,可得递推关系:
Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1D_{n}=(n-1)\left(D_{n-1}+D_{n-2}\right), \quad D_{0}=1,\quad D_{1}=0, \quad D_{2}=1Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1
-
3.定义:什么是递推关系的解
如果序列的项满足递归关系,则称为递归关系的解。
4. 用生成函数求解递推关系
4.1 汉诺塔问题
hn=2hn−1+1,h1=0h_n = 2h_{n-1}+1,\quad h_1=0hn=2hn−1+1,h1=0
H(x)=h1x+h2x2+…H(x)=h_{1} x+h_{2} x^{2}+\ldotsH(x)=h1x+h2x2+…
求H(x):H(x):H(x):
H(x)−2xH(x)=h1x+[h2−2h1]x2+[h3−2h2]x3+…
H(x)-2xH(x)=h_{1} x+\left[h_{2}-2 h_{1}\right] x^{2}+\left[h_{3}-2 h_{2}\right] x^{3}+\ldots
H(x)−2xH(x)=h1x+[h2−2h1]x2+[h3−2h2]x3+…
h1=1,h2−2h1=1,h3−2h2=1,…,h_{1}=1, h_{2}-2 h_{1}=1, h_{3}-2 h_{2}=1, \ldots,h1=1,h2−2h1=1,h3−2h2=1,…,
∴(1−2x)H(x)=x+x2+x3+…=x/(1−x)\therefore(1-2 x) H(x)=x+x^{2}+x^{3}+\ldots=x /(1-x)∴(1−2x)H(x)=x+x2+x3+…=x/(1−x)
H(x)=x(1−x)(1−2x)H(x)=A1−x+B1−2x
\begin{aligned}
H(x)=\frac{x}{(1-x)(1-2 x)} \quad H(x)=\frac{A}{1-x}+\frac{B}{1-2 x}
\end{aligned}
H(x)=(1−x)(1−2x)xH(x)=1−xA+1−2xB
H(x)=11−2x−11−x=(1+2x+22x2+23x3+⋯ )−(1+x+x2+x3+⋯ )=(1−1)+(2−1)x+(22−1)x2+(23−1)x3+⋯
\begin{aligned} H(x) &=\frac{1}{1-2 x}-\frac{1}{1-x} \\ &=\left(1+2 x+2^{2} x^{2}+2^{3} x^{3}+\cdots\right)-\left(1+x+x^{2}+x^{3}+\cdots\right) \\ &=(1-1)+(2-1) x+\left(2^{2}-1\right) x^{2}+\left(2^{3}-1\right) x^{3}+\cdots \end{aligned}
H(x)=1−2x1−1−x1=(1+2x+22x2+23x3+⋯)−(1+x+x2+x3+⋯)=(1−1)+(2−1)x+(22−1)x2+(23−1)x3+⋯
∴hk=2k−1\therefore h_{k}=2^{k}-1∴hk=2k−1
4.2 指数型生成函数
4.2.1 定义
实数序列a0、a1、…、ak、…a_0、a_1、…、a_k、…a0、a1、…、ak、…的指数生成函数是无穷级数
fe(x)=a0+a1x11!+a2x22!+⋯+anxnn!+⋯=∑n=0∞anxnn!
f_{e}(x)=a_{0}+a_{1} \frac{x^{1}}{1 !}+a_{2} \frac{x^{2}}{2 !}+\cdots+a_{n} \frac{x^{n}}{n !}+\cdots=\sum_{n=0}^{\infty} a_{n} \frac{x^{n}}{n !}
fe(x)=a0+a11!x1+a22!x2+⋯+ann!xn+⋯=n=0∑∞ann!xn
4.2.2 错排问题
设nnn个数1,2,…,n1,2,…,n1,2,…,n错排的数目为DnD_nDn,可得递推关系:
Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1D_{n}=(n-1)\left(D_{n-1}+D_{n-2}\right), \quad D_{0}=1,\quad D_{1}=0, \quad D_{2}=1Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1
Dn=(n−1)(Dn−1+Dn−2)Dn−nDn−1=−[Dn−1−(n−1)Dn−2]=(−1)2[Dn−2−(n−2)Dn−3]=…=(−1)n−1(D1−D0)
\begin{aligned} D_{n} &=(n-1)\left(D_{n-1}+D_{n-2}\right) \\ D_{n}-n D_{n-1} &=-\left[D_{n-1}-(n-1) D_{n-2}\right] \\ &=(-1)^{2}\left[D_{n-2}-(n-2) D_{n-3}\right]=\ldots \\ &=(-1)^{n-1}\left(D_{1}-D_{0}\right) \end{aligned}
DnDn−nDn−1=(n−1)(Dn−1+Dn−2)=−[Dn−1−(n−1)Dn−2]=(−1)2[Dn−2−(n−2)Dn−3]=…=(−1)n−1(D1−D0)
∴Dn−nDn−1=(−1)n\therefore D_n -n D_{n-1}=(-1)^n∴Dn−nDn−1=(−1)n
设DnD_nDn的指数型生成函数为:
Ge(x)=D0+D1x+D22!x2+D33!x3+⋯
G_{e}(x)=D_{0}+D_{1} x+\frac{D_{2}}{2 !} x^{2}+\frac{D_{3}}{3 !} x^{3}+\cdots
Ge(x)=D0+D1x+2!D2x2+3!D3x3+⋯
由于
Ge(x)=D0+D1x+D22!x2+D33!x3+⋯xGe(x)=D0x+D1x2+D22!x3+D33!x4+⋯Dnn!−Dn−1(n−1)!=(Dnn−Dn−1)1(n−1)!=(−1)nn!
\begin{array}{l}{G_{e}(x)=D_{0}+D_{1} x+\frac{D_{2}}{2 !} x^{2}+\frac{D_{3}}{3 !} x^{3}+\cdots} \\ {x G_{e}(x)=\quad D_{0} x+D_{1} x^{2}+\frac{D_{2}}{2 !} x^{3}+\frac{D_{3}}{3 !} x^{4}+\cdots} \\ {\frac{D_{n}}{n !}-\frac{D_{n-1}}{(n-1) !}=\left(\frac{D_{n}}{n}-D_{n-1}\right) \frac{1}{(n-1) !}=\frac{(-1)^{n}}{n !}}\end{array}
Ge(x)=D0+D1x+2!D2x2+3!D3x3+⋯xGe(x)=D0x+D1x2+2!D2x3+3!D3x4+⋯n!Dn−(n−1)!Dn−1=(nDn−Dn−1)(n−1)!1=n!(−1)n
得
Ge(x)−xGe(x)=e−x
G_{e}(x)-x G_{e}(x)=e^{-x}
Ge(x)−xGe(x)=e−x
因此
Ge(x)=e−x1−x=(1−x+x22!−…±xnn!±⋯ )/(1−x)=(1−x+x22!−⋯±xnn!∓⋯ )(1+x+x2+⋯ )
\begin{array}{l}{G_{e}(x)=\frac{e^{-x}}{1-x}=\left(1-x+\frac{x^{2}}{2 !}-\ldots \pm \frac{x^{n}}{n !} \pm \cdots\right) /(1-x)} \\ {=\left(1-x+\frac{x^{2}}{2 !}-\cdots \pm \frac{x^{n}}{n !} \mp \cdots\right)\left(1+x+x^{2}+\cdots\right)}\end{array}
Ge(x)=1−xe−x=(1−x+2!x2−…±n!xn±⋯)/(1−x)=(1−x+2!x2−⋯±n!xn∓⋯)(1+x+x2+⋯)
∴Dn=(1−1+12!−⋯±1n!)n!\therefore D_{n}=\left(1-1+\frac{1}{2 !}-\cdots \pm \frac{1}{n !}\right) n !∴Dn=(1−1+2!1−⋯±n!1)n!
4.3 整数拆分问题
4.31 定义
所谓整数拆分即把整数分解成若干整数的和,相当于把nnn个无区别的球放到nnn个无标志的盒子,盒子允许空着,也允许放多于一个球。整数拆分成若干整数的和,办法不一,不同拆分法的总数叫做拆分数。
例子1
若有1克、2克、3克、4克的砝码各一枚,问能称出那几种重量?有几种可能方案?
(1+x)(1+x2)(1+x3)(1+x4)=(1+x+x2+x3)(1+x3+x4+x7)=1+x+x2+2x3+2x4+2x5+2x6+2x7+x8+x9+x10
\begin{array}{l}{(1+x)\left(1+x^{2}\right)\left(1+x^{3}\right)\left(1+x^{4}\right)} \\ {=\left(1+x+x^{2}+x^{3}\right)\left(1+x^{3}+x^{4}+x^{7}\right)} \\ {=1+x+x^{2}+2 x^{3}+2 x^{4}+2 x^{5}+2 x^{6}+2 x^{7}+x^{8}+x^{9}+x^{10}}\end{array}
(1+x)(1+x2)(1+x3)(1+x4)=(1+x+x2+x3)(1+x3+x4+x7)=1+x+x2+2x3+2x4+2x5+2x6+2x7+x8+x9+x10
0克:1,1克:1,2克:1,3克:2,4克:2,5克:2,6克:2,7克:2,8克:1,9克:1,10克:10克:1, 1克:1, 2克:1, 3克:2, 4克:2, 5克:2, 6克:2, 7克:2, 8克:1, 9克:1, 10克:10克:1,1克:1,2克:1,3克:2,4克:2,5克:2,6克:2,7克:2,8克:1,9克:1,10克:1
例子2
若有1克、2克、3克的砝码各无数枚,问能称出那几种重量?有几种可能方案?
G(x)=(1+x+x2+… )(1+x2+x4+… )(1+x3+x6+… )
G(x)=\left(1+x+x^{2}+\dots\right)\left(1+x^{2}+x^{4}+\dots\right)\left(1+x^{3}+x^{6}+\dots\right)
G(x)=(1+x+x2+…)(1+x2+x4+…)(1+x3+x6+…)
例子3
整数nnn拆分成1,2,3,…,m1,2,3,…,m1,2,3,…,m的和,并允许重复,有多少种拆分方法?
G1(x)=(1+x+x2+⋯ )(1+x2+x4+⋯ )⋯(1+xm+x2m+⋯ )=11−x11−x2⋯11−xm
\begin{array}{l}{G_{1}(x)} \\ {=\left(1+x+x^{2}+\cdots\right)\left(1+x^{2}+x^{4}+\cdots\right) \cdots\left(1+x^{m}+x^{2 m}+\cdots\right)} \\ {=\frac{1}{1-x} \frac{1}{1-x^{2}} \cdots \frac{1}{1-x^{m}}}\end{array}
G1(x)=(1+x+x2+⋯)(1+x2+x4+⋯)⋯(1+xm+x2m+⋯)=1−x11−x21⋯1−xm1