用生成函数求解递推关系
简单例子
生成函数是一种把无限数列 f 0 , f 1 , f 2 , f 3 , . . . f_{0},f_{1},f_{2},f_{3},... f0,f1,f2,f3,...表示成幂序列的系数的表示方法:
F ( x ) = f 0 + f 1 x + f 2 x 2 + f 3 x 3 + . . . F(x)=f_{0}+f_{1}x+f_{2}x^{2}+f_{3}x^{3}+... F(x)=f0+f1x+f2x2+f3x3+...
比如数列 1 , 1 , 1 , . . . 1,1,1,... 1,1,1,...,我们用生成函数来表示就是:
G ( x ) = 1 + x + x 2 + x 3 + . . . G(x)=1+x+x^{2}+x^{3}+... G(x)=1+x+x2+x3+...
我们可以计算出它的简单表达式:
G ( x ) = 1 + x + x 2 + x 3 + . . . − x G ( x ) = − x − x 2 − x 3 − . . . } ⇒ G ( x ) − x G ( x ) = 1 ⇒ G ( x ) = ∑ i = 0 ∞ x i = 1 1 − x \left.\begin{array}{rcl} G(x)=1+x+x^{2}+x^{3}+...\\ -xG(x)=-x-x^{2}-x^{3}-...\end{array}\right\}\Rarr G(x)-xG(x)=1\Rarr G(x)=\sum\limits^{\infty}_{i=0}x^{i}=\frac{1}{1-x} G(x)=1+x+x2+x3+...−xG(x)=−x−x2−x3−...}⇒G(x)−xG(x)=1⇒G(x)=i=0∑∞xi=1−x1
再比如正整数构成的数列 1 , 2 , 3 , 4 , . . . 1,2,3,4,... 1,2,3,4,...,用生成函数表示为:
N ( x ) = 1 + 2 x + 3 x 2 + 4 x 3 + . . . + ( n + 1 ) x n N(x)=1+2x+3x^{2}+4x^{3}+...+(n+1)x^{n} N(x)=1+2x+3x2+4x3+...+(n+1)xn
我们用同样的方法求得它的简单表达式:
N ( x ) − x N ( x ) = 1 + x + x 2 + x 3 + . . . = G ( x ) = 1 1 − x N(x)-xN(x)=1+x+x^{2}+x^{3}+...=G(x)=\frac{1}{1-x} N(x)−xN(x)=1+x+x2+x3+...=G(x)=1−x1
因此:
N ( x ) = ∑ i = 0 ∞ ( i + 1 ) x i = 1 ( 1 − x ) 2 N(x)=\sum\limits^{\infty}_{i=0}(i+1)x^i=\frac{1}{(1-x)^{2}} N(x)=i=0∑∞(i+1)xi=(1−x)21
常用的生成函数
1 1 − a x = ∑ i = 0 ∞ a i x i = 1 + a x + a 2 x 2 + a 3 x 3 + . . . \frac{1}{1-ax}=\sum\limits^{\infty}_{i=0}a^{i}x^{i}=1+ax+a^{2}x^{2}+a^{3}x^{3}+... 1−ax1=i=0∑∞aixi=1+ax+a2x2+a3x3+...
1 1 − x r = ∑ i = 0 ∞ x r i = 1 + x r + x 2 r + x 3 r + . . . \frac{1}{1-x^{r}}=\sum\limits^{\infty}_{i=0}x^{ri}=1+x^{r}+x^{2r}+x^{3r}+... 1−xr1=i=0∑∞xri=1+xr+x2r+x3r+...
1 ( 1 − x ) n = ∑ i = 0 ∞ ( n + i − 1 i ) x i = 1 + ( n 1 ) x + ( n + 1 2 ) x 2 + ( n + 2 3 ) x 3 + . . . \frac{1}{(1-x)^{n}}=\sum\limits^{\infty}_{i=0}\left(\begin{array}{c}n+i-1\\i\end{array}\right)x^{i}=1+\left(\begin{array}{c}n\\1\end{array}\right)x+\left(\begin{array}{c}n+1\\2\end{array}\right)x^{2}+\left(\begin{array}{c}n+2\\3\end{array}\right)x^{3}+... (1−x)n1=i=0∑∞(n+i−1i)xi=1+(n1)x+(n+12)x2+(n+23)x3+...
等差数列
生成函数可以用来求数列的通项公式。比如以 a 0 a_{0} a0为首项, d d d为公差的等差数列 a 0 , a 1 , a 2 , a 3 , . . . a_{0},a_{1},a_{2},a_{3},... a0,a1,a2,a3,...。我们先写出它的生成函数:
A ( x ) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + . . . A(x)=a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+... A(x)=a0+a1x+a2x2+a3x3+...
然后错位相减:
A ( x ) − x A ( x ) = a 0 + d ( x + x 2 + x 3 + . . . ) = a 0 + x d 1 − x = a 0 − d + d 1 − x A(x)-xA(x)=a_{0}+d(x+x^{2}+x^{3}+...)=a_{0}+\frac{xd}{1-x} = a_{0}-d+\frac{d}{1-x} A(x)−xA(x)=a0+d(x+x2+x3+...)=a0+1−xxd=a0−d+1−xd
所以:
A ( x ) = a 0 − d 1 − x + d ( 1 − x ) 2 = ∑ i = 0 ∞ ( ( a 0 − d ) + ( i + 1 ) d ) x i = ∑ i = 0 ∞ ( a 0 + i d ) x i A(x)=\frac{a_{0}-d}{1-x}+\frac{d}{(1-x)^{2}}=\sum\limits^{\infty}_{i=0}((a_{0}-d)+(i+1)d)x^i=\sum\limits^{\infty}_{i=0}(a_{0}+id)x^i A(x)=1−xa0−d+(1−x)2d=i=0∑∞((a0−d)+(i+1)d)xi=i=0∑∞(a0+id)xi
我们可以由此得出该等差数列的通项公式为:
a n + 1 = a 0 + n d a_{n+1}=a_{0}+nd an+1=a0+nd
斐波那契数列
斐波那契数列的通项公式也可以用这种方法求出。我们知道斐波那契数列的递推关系:
f 0 = 0 f_{0}=0 f0=0
f 1 = 1 f_{1}=1 f1=1
f n = f n − 1 + f n − 2 , n ⩽ 2 f_{n} = f_{n-1}+f_{n-2}, n \leqslant 2 fn=fn−1+fn−2,n⩽2
它的生成函数记为:
F ( x ) = f 0 + f 1 x + f 2 x 2 + f 3 x 3 + . . . + f n x n + . . . F(x)=f_{0}+f_{1}x+f_{2}x^{2}+f_{3}x^{3}+...+f_{n}x^{n}+... F(x)=f0+f1x+f2x2+f3x3+...+fnxn+...
错位相减:
F ( x ) − x F ( x ) − x 2 F ( x ) F(x)-xF(x)-x^{2}F(x) F(x)−xF(x)−x2F(x)
= f 0 + ( f 1 − f 0 ) x + ( f 2 − f 1 − f 0 ) x 2 + . . . + ( f n − f n − 1 − f n − 2 ) x n + . . . =f_{0}+(f_{1}-f_{0})x+(f_{2}-f_{1}-f_{0})x^{2}+...+(f_{n}-f_{n-1}-f_{n-2})x^{n}+... =f0+(f1−f0)x+(f2−f1−f0)x2+...+(fn−fn−1−fn−2)xn+...
= 0 + 1 x + 0 x 2 + . . . + 0 x n + . . . =0+1x+0x^{2}+...+0x^{n}+... =0+1x+0x2+...+0xn+...
= x =x =x
于是:
F ( x ) = x 1 − x − x 2 F(x)=\frac{x}{1-x-x^{2}} F(x)=1−x−x2x
这是一个部分分式。我们知道部分分式是可以分解的。定理如下:
设 p ( x ) p(x) p(x)为次数小于 n n n的多项式, α 1 , α 2 , . . . , α n \alpha_{1},\alpha_{2},...,\alpha_{n} α1,α2,...,αn为互不相同的非零数,则存在常数 c 1 , c 2 , . . . , c n c_{1},c_{2},...,c_{n} c1,c2,...,cn使得
p ( x ) ( 1 − α 1 x ) ( 1 − α 2 x ) . . . ( 1 − α n x ) = c 1 1 − α 1 x + c 2 1 − α 2 x + . . . + c n 1 − α n x \frac{p(x)}{(1-\alpha_{1}x)(1-\alpha_{2}x)...(1-\alpha_{n}x)}=\frac{c_{1}}{1-\alpha_{1}x}+\frac{c_{2}}{1-\alpha_{2}x}+...+\frac{c_{n}}{1-\alpha_{n}x} (1−α1x)(1−α2x)...(1−αnx)p(x)=1−α1xc1+1−α2xc2+...+1−αnxcn
对于 x 1 − x − x 2 \frac{x}{1-x-x^{2}} 1−x−x2x,我们设它可以被分解成 c 1 1 − α 1 x + c 2 1 − α 2 x \frac{c_{1}}{1-\alpha_{1}x}+\frac{c_{2}}{1-\alpha_{2}x} 1−α1xc1+1−α2xc2。由 1 − x − x 2 = ( 1 − α 1 x ) ( 1 − α 2 x ) 1-x-x^{2}=(1-\alpha_{1}x)(1-\alpha_{2}x) 1−x−x2=(1−α1x)(1−α2x),可以解得 α 1 = 1 + 5 2 , α 2 = 1 − 5 2 \alpha_{1}=\frac{1+\sqrt{5}}{2},\alpha_{2}=\frac{1-\sqrt{5}}{2} α1=21+5,α2=21−5。又由 x 1 − x − x 2 = c 1 1 − α 1 x + c 2 1 − α 2 x \frac{x}{1-x-x^{2}}=\frac{c_{1}}{1-\alpha_{1}x}+\frac{c_{2}}{1-\alpha_{2}x} 1−x−x2x=1−α1xc1+1−α2xc2通分得 x = c 1 ( 1 − α 2 x ) + c 2 ( 1 − α 1 x ) x=c_{1}(1-\alpha_{2}x)+c_{2}(1-\alpha_{1}x) x=c1(1−α2x)+c2(1−α1x)。代入 α 1 \alpha_{1} α1和 α 2 \alpha_{2} α2得 c 1 = 1 5 , c 2 = − 1 5 c_{1}=\frac{1}{\sqrt{5}},c_{2}=-\frac{1}{\sqrt{5}} c1=51,c2=−51。所以 x 1 − x − x 2 = 1 5 ( 1 1 − α 1 x − 1 1 − α 2 x ) \frac{x}{1-x-x^{2}}=\frac{1}{\sqrt{5}}(\frac{1}{1-\alpha_{1}x}-\frac{1}{1-\alpha_{2}x}) 1−x−x2x=51(1−α1x1−1−α2x1)。
根据常用的生成函数 1 1 − a x = ∑ i = 0 ∞ a i x i = 1 + a x + a 2 x 2 + a 3 x 3 + . . . \frac{1}{1-ax}=\sum\limits^{\infty}_{i=0}a^{i}x^{i}=1+ax+a^{2}x^{2}+a^{3}x^{3}+... 1−ax1=i=0∑∞aixi=1+ax+a2x2+a3x3+...,我们可以把上述分式写成:
x 1 − x − x 2 = 1 5 ( ( 1 + α 1 x + α 1 2 x 2 + α 1 3 x 3 + . . . ) − ( 1 + α 2 x + α 2 2 x 2 + α 2 3 x 3 + . . . ) ) = ∑ i = 0 ∞ α 1 i − α 2 i 5 x i \frac{x}{1-x-x^{2}}=\frac{1}{\sqrt{5}}((1+\alpha_{1}x+\alpha_{1}^{2}x^{2}+\alpha_{1}^{3}x^{3}+...)-(1+\alpha_{2}x+\alpha_{2}^{2}x^{2}+\alpha_{2}^{3}x^{3}+...))=\sum\limits^{\infty}_{i=0}\frac{\alpha_{1}^{i}-\alpha_{2}^{i}}{\sqrt{5}}x^i 1−x−x2x=51((1+α1x+α12x2+α13x3+...)−(1+α2x+α22x2+α23x3+...))=i=0∑∞5α1i−α2ixi
所以我们解得斐波那契数列的通项公式为:
f n = 1 5 ( ( 1 + 5 2 ) n − ( 1 − 5 2 ) n ) f_{n}=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n}-(\frac{1-\sqrt{5}}{2})^{n}) fn=51((21+5)n−(21−5)n)
其他常系数线性递推的例子
接下来我们运用生成函数来解决一个实际一点的数学问题:
题目:对于由数字 0 ∼ 9 0\sim9 0∼9组成的码串,它必须包含偶数个0,求长度为 n n n的码串有多少个?
解答:
我们设长度为 n n n的码串有 a n a_{n} an个。
当 n = 1 n=1 n=1时,码串“ 1 1 1”,码串“ 2 2 2”,…,码串“ 9 9 9”都符号条件。所以 a 1 = 9 a_{1}=9 a1=9。
当 n = k n=k n=k时,合法码串有 a k a_{k} ak个,在其后面加一个非零数字,也得到一个合法码串;非法码串有 1 0 k − a k 10^{k}-a_{k} 10k−ak个,在其后面加一个0,可得到一个合法码串。于是得到递推关系式:
a k + 1 = 9 a k + ( 1 0 k − a k ) = 8 a k + 1 0 k a_{k+1}=9a_{k}+(10^{k}-a_{k})=8a_{k}+10^{k} ak+1=9ak+(10k−ak)=8ak+10k
我们令 G ( x ) = ∑ i = 0 ∞ a i x i G(x)=\sum\limits^{\infty}_{i=0}a_{i}x^{i} G(x)=i=0∑∞aixi为其生成函数,则有:
G ( x ) − 1 G(x)-1 G(x)−1
= ∑ i = 1 ∞ a i x i =\sum\limits^{\infty}_{i=1}a_{i}x^{i} =i=1∑∞aixi
= ∑ i = 0 ∞ a i + 1 x i + 1 =\sum\limits^{\infty}_{i=0}a_{i+1}x^{i+1} =i=0∑∞ai+1xi+1
= ∑ i = 0 ∞ 8 a i x i + 1 + ∑ i = 0 ∞ 1 0 i x i + 1 =\sum\limits^{\infty}_{i=0}8a_{i}x^{i+1}+\sum\limits^{\infty}_{i=0}10^{i}x^{i+1} =i=0∑∞8aixi+1+i=0∑∞10ixi+1
= 8 x ∑ i = 0 ∞ a i x i + x ∑ i = 0 ∞ 1 0 i x i =8x\sum\limits^{\infty}_{i=0}a_{i}x^{i}+x\sum\limits^{\infty}_{i=0}10^{i}x^{i} =8xi=0∑∞aixi+xi=0∑∞10ixi
= 8 x G ( x ) + x 1 − 10 x =8xG(x)+\frac{x}{1-10x} =8xG(x)+1−10xx
由此解得:
G ( x ) = 1 2 ( 1 1 − 8 x + 1 1 − 10 x ) G(x)=\frac{1}{2}(\frac{1}{1-8x}+\frac{1}{1-10x}) G(x)=21(1−8x1+1−10x1)
所以:
G ( x ) = ∑ i = 0 ∞ 8 i + 1 0 i 2 x i G(x)=\sum\limits^{\infty}_{i=0}\frac{8^{i}+10^{i}}{2}x^{i} G(x)=i=0∑∞28i+10ixi
a n a_{n} an的通项公式为:
a n = 1 2 ( 8 n + 1 0 n ) a_{n}=\frac{1}{2}(8^{n}+10^{n}) an=21(8n+10n)
卡特兰数
我们可以用生成函数求解一些具有更复杂的递推关系的题目。比如下面我们来讨论的卡特兰数(Catalan number)。我们从一个实际问题来引入。
铁路站台常设计成后进先出(last in first out, LIFO)的栈式结构。如下图所示:
------------------------------------------------------------
<-出站 <------+ +--------- <-进站
| |
| |
------------------------+ | | +----------------------
| | | |
| | V |
| |
| |
| 站 |
| |
| 台 |
| |
当编号为1,2,3,4的列车依次开进站(只进不出)后,站台的情况是这样的:
--------------------------------------------------------------
<-出站 <------+ +--------- <-进站
| |
| |
------------------------+ | | +-------------------
| | | |
| | 站 V |
| 台 |
| |
| +-----------+ |
| | | |
| | 4 | |
| | | |
| +-----------+ |
| |
| +-----------+ |
| | | |
| | 3 | |
| | | |
| +-----------+ |
| |
| +-----------+ |
| | | |
| | 2 | |
| | | |
| +-----------+ |
| |
| +-----------+ |
| | | |
| | 1 | |
| | | |
| +-----------+ |
现在这些列车要出站,显然只有最靠近站台外面的列车4能出站。其他列车只有在列车4出站之后才能出站。因为列车4是最后一个进站的,而又必须是第一个出站的,所以这个站台模型是一个后进先出的栈式结构。
现在有 n n n辆列车,编号分别为 1 , 2 , . . . , n 1,2,...,n 1,2,...,n。它们按顺序开进一个空站台(对于 i < j i<j i<j,列车 i i i必须比列车 j j j先进站),然后出站(只要站内有列车,最靠近站外的那辆列车就可以选择出站,即使此时 n n n辆列车还没有全部进站)。例如,第1次调度列车时,此时站内是空的,没有列车可以出站,所以此时只能调度列车 1 1 1进站。第2次调度列车时,可以选择列车 1 1 1出站,也可以选择列车 2 2 2进站。假如第2次调度选择了列车 2 2 2进站,那么第3次调度列车时,可以选择列车 2 2 2出站,也可以选择列车 3 3 3进站。依次类推。
我们定义一个序列叫做“出站序列”,这个序列根据出站先后顺序排列出站列车的编号而得到。以 n = 3 n=3 n=3时举例。先让3辆列车依次进站,再让站内的3辆列车依次出站,那么列车出站的顺序就是:列车 3 3 3,列车 2 2 2,列车 1 1 1。这种调度方法的出站序列就是 321 321 321。再例如这样调度:列车 1 1 1进站,列车 2 2 2进站,列车 2 2 2出站,列车 3 3 3进站,列车 3 3 3出站,列车 1 1 1出站。它的出站序列为 231 231 231。其实每次调度时,要么选择未进站的列车中编号最小者进站,要么选择站内编号最大的列车出站。所以我们这样描述调度过程:进站,进站,出站,进站,出站,出站。这也可以确定出站序列为 231 231 231。
现在我们提出问题:对于 n n n辆要进站的列车,共有多少种不同的出站序列?
解答:我们记对于 n n n辆要进站的列车,共有 c n c_{n} cn种不同的出站序列。
显然 c 1 = 1 c_{1}=1 c1=1。
对于 1 ⩽ k ⩽ n 1\leqslant k\leqslant n 1⩽k⩽n,我们假设列车 k k k最后出站。因为每次出站都是站内编号最大的列车出站,所以在列车 k k k进站之前,所有编号比它小的列车都已经出站。对于这 k − 1 k-1 k−1辆车,有 c k − 1 c_{k-1} ck−1种不同的出站序列。而对于编号比 k k k大的列车,因为每次进站都是站外编号最小的列车进站,所以这些列车会在列车 k k k之后进站。又因为它们会在列车 i i i出站之前出站,所以这些列车有 c n − k c_{n-k} cn−k种出站序列。我们不妨令 c 0 = 1 c_{0}=1 c0=1,则有递推公式:
c n = ∑ k = 1 n c k − 1 c n − k = ∑ k = 0 n − 1 c k c n − k − 1 c_{n}=\sum\limits_{k=1}^{n}c_{k-1}c_{n-k}=\sum\limits_{k=0}^{n-1}c_{k}c_{n-k-1} cn=k=1∑nck−1cn−k=k=0∑n−1ckcn−k−1
这个 c n c_{n} cn就是卡特兰数。现在我们要利用它的递推公式求它的通项公式。
我们记它的生成函数为 C ( x ) = ∑ i = 0 ∞ c i x i C(x)=\sum\limits_{i=0}^{\infty}c_{i}x^{i} C(x)=i=0∑∞cixi,将它平方得到:
C 2 ( x ) C^{2}(x) C2(x)
= c 0 2 + ( c 0 c 1 + c 1 c 0 ) x + ( c 0 c 2 + c 1 c 1 + c 2 c 0 ) x 2 + . . . =c_{0}^{2}+(c_{0}c_{1}+c_{1}c_{0})x+(c_{0}c_{2}+c_{1}c_{1}+c_{2}c_{0})x^{2}+... =c02+(c0c1+c1c0)x+(c0c2+c1c1+c2c0)x2+...
= ∑ i = 0 ∞ ( ∑ k = 0 i c k c i − k ) x i =\sum\limits_{i=0}^{\infty}(\sum\limits_{k=0}^{i}c_{k}c_{i-k})x^{i} =i=0∑∞(k=0∑ickci−k)xi
= ∑ i = 0 ∞ c i + 1 x i =\sum\limits_{i=0}^{\infty}c_{i+1}x^{i} =i=0∑∞ci+1xi
错位相减:
C ( x ) − x C 2 ( x ) = c 0 = 1 C(x)-xC^{2}(x)=c_{0}=1 C(x)−xC2(x)=c0=1
解方程得:
C ( x ) = 1 ± 1 − 4 x 2 x C(x)=\frac{1\pm\sqrt{1-4x}}{2x} C(x)=2x1±1−4x
我们现在要舍去一个根。由 C ( x ) C(x) C(x)的定义式知 lim x → 0 C ( x ) = c 0 = 1 \lim\limits_{x\rarr0}C(x)=c_{0}=1 x→0limC(x)=c0=1
而 lim x → 0 C ( x ) = lim x → 0 1 ± 1 − 4 x 2 x = lim x → 0 2 1 ∓ 1 − 4 x \lim\limits_{x\rarr0}C(x)=\lim\limits_{x\rarr0}\frac{1\pm\sqrt{1-4x}}{2x}=\lim\limits_{x\rarr0}\frac{2}{1\mp\sqrt{1-4x}} x→0limC(x)=x→0lim2x1±1−4x=x→0lim1∓1−4x2
所以舍去正号的解,得到 C ( x ) C(x) C(x):
C ( x ) = 1 − 1 − 4 x 2 x C(x)=\frac{1-\sqrt{1-4x}}{2x} C(x)=2x1−1−4x
接下来继续计算 C ( x ) C(x) C(x),我们需要用到二项式定理:
( 1 + x ) α = 1 + ∑ i = 1 ∞ ( α i ) x i , α ∈ R (1+x)^{\alpha}=1+\sum\limits_{i=1}^{\infty}\left(\begin{array}{rcl}\alpha \\ i\end{array}\right)x^{i}, \alpha\in R (1+x)α=1+i=1∑∞(αi)xi,α∈R
令 α = 1 2 \alpha=\frac{1}{2} α=21,代入上式计算 C ( x ) C(x) C(x):
C ( x ) C(x) C(x)
= 1 − 1 − 4 x 2 x =\frac{1-\sqrt{1-4x}}{2x} =2x1−1−4x
= 1 2 x ( 1 − ( 1 + ∑ i = 1 ∞ ( 1 2 i ) ( − 4 x ) i ) ) =\frac{1}{2x}(1-(1+\sum\limits_{i=1}^{\infty}\left(\begin{array}{c}\frac{1}{2} \\ i\end{array}\right)(-4x)^{i})) =2x1(1−(1+i=1∑∞(21i)(−4x)i))
= 2 ∑ i = 1 ∞ ( 1 2 i ) ( − 4 x ) i − 1 =2\sum\limits_{i=1}^{\infty}\left(\begin{array}{c}\frac{1}{2} \\ i\end{array}\right)(-4x)^{i-1} =2i=1∑∞(21i)(−4x)i−1
= 2 ∑ i = 1 ∞ 1 2 ⋅ ( − 1 2 ) ⋅ ( − 3 2 ) ⋅ . . . ⋅ ( 3 2 − i ) i ! ( − 4 x ) i − 1 =2\sum\limits_{i=1}^{\infty}\frac{\frac{1}{2}\cdot(-\frac{1}{2})\cdot(-\frac{3}{2})\cdot...\cdot(\frac{3}{2}-i)}{i!}(-4x)^{i-1} =2i=1∑∞i!21⋅(−21)⋅(−23)⋅...⋅(23−i)(−4x)i−1
= 1 + ∑ i = 2 ∞ 1 2 ⋅ 3 2 ⋅ . . . ⋅ ( i − 3 2 ) i ! ( 4 x ) i − 1 =1+\sum\limits_{i=2}^{\infty}\frac{\frac{1}{2}\cdot\frac{3}{2}\cdot...\cdot(i-\frac{3}{2})}{i!}(4x)^{i-1} =1+i=2∑∞i!21⋅23⋅...⋅(i−23)(4x)i−1
= 1 + ∑ i = 2 ∞ ( 2 i − 3 ) ! ! i ! ( 2 x ) i − 1 =1+\sum\limits_{i=2}^{\infty}\frac{(2i-3)!!}{i!}(2x)^{i-1} =1+i=2∑∞i!(2i−3)!!(2x)i−1
= 1 + ∑ i = 2 ∞ ( 2 i − 3 ) ! ! i ! ⋅ ( 2 i − 2 ) ! ! ( i − 1 ) ! x i − 1 =1+\sum\limits_{i=2}^{\infty}\frac{(2i-3)!!}{i!}\cdot\frac{(2i-2)!!}{(i-1)!}x^{i-1} =1+i=2∑∞i!(2i−3)!!⋅(i−1)!(2i−2)!!xi−1
= 1 + ∑ i = 2 ∞ ( 2 i − 2 ) ! i ! ( i − 1 ) ! x i − 1 =1+\sum\limits_{i=2}^{\infty}\frac{(2i-2)!}{i!(i-1)!}x^{i-1} =1+i=2∑∞i!(i−1)!(2i−2)!xi−1
= ∑ i = 1 ∞ ( 2 i − 2 ) ! i ! ( i − 1 ) ! x i − 1 =\sum\limits_{i=1}^{\infty}\frac{(2i-2)!}{i!(i-1)!}x^{i-1} =i=1∑∞i!(i−1)!(2i−2)!xi−1
= ∑ i = 0 ∞ ( 2 i ) ! ( i + 1 ) ! i ! x i =\sum\limits_{i=0}^{\infty}\frac{(2i)!}{(i+1)!i!}x^{i} =i=0∑∞(i+1)!i!(2i)!xi
= ∑ i = 0 ∞ ( 2 i i ) i + 1 x i =\sum\limits_{i=0}^{\infty}\frac{\left(\begin{array}{c}2i \\ i\end{array}\right)}{i+1}x^{i} =i=0∑∞i+1(2ii)xi
所以 c n = ( 2 n n ) n + 1 c_{n}=\frac{\left(\begin{array}{c}2n \\ n\end{array}\right)}{n+1} cn=n+1(2nn),出站序列有 ( 2 n n ) n + 1 \frac{\left(\begin{array}{c}2n \\ n\end{array}\right)}{n+1} n+1(2nn)种。
c n = ( 2 n n ) n + 1 c_{n}=\frac{\left(\begin{array}{c}2n \\ n\end{array}\right)}{n+1} cn=n+1(2nn),这就是卡特兰数的通项公式。
参考文章
卡特兰数部分:用母函数推卡特兰数通项公式