生成函数的简单应用(卡特兰数、斐波那契数列的通项公式推导)

用生成函数求解递推关系

简单例子

生成函数是一种把无限数列 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)=xx2x3...}G(x)xG(x)=1G(x)=i=0xi=1x1

再比如正整数构成的数列 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)=1x1

因此:

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=(1x)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}+... 1ax1=i=0aixi=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}+... 1xr1=i=0xri=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}+... (1x)n1=i=0(n+i1i)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+1xxd=a0d+1xd

所以:

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)=1xa0d+(1x)2d=i=0((a0d)+(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=fn1+fn2,n2

它的生成函数记为:

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+(f1f0)x+(f2f1f0)x2+...+(fnfn1fn2)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)=1xx2x

这是一个部分分式。我们知道部分分式是可以分解的。定理如下:

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}} 1xx2x,我们设它可以被分解成 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) 1xx2=(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=215 。又由 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} 1xx2x=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=5 1,c2=5 1。所以 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}) 1xx2x=5 1(1α1x11α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}+... 1ax1=i=0aixi=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 1xx2x=5 1((1+α1x+α12x2+α13x3+...)(1+α2x+α22x2+α23x3+...))=i=05 α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=5 1((21+5 )n(215 )n)

其他常系数线性递推的例子

接下来我们运用生成函数来解决一个实际一点的数学问题:

题目:对于由数字 0 ∼ 9 0\sim9 09组成的码串,它必须包含偶数个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} 10kak个,在其后面加一个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+(10kak)=8ak+10k

我们令 G ( x ) = ∑ i = 0 ∞ a i x i G(x)=\sum\limits^{\infty}_{i=0}a_{i}x^{i} G(x)=i=0aixi为其生成函数,则有:

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=1aixi

= ∑ i = 0 ∞ a i + 1 x i + 1 =\sum\limits^{\infty}_{i=0}a_{i+1}x^{i+1} =i=0ai+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=08aixi+1+i=010ixi+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=0aixi+xi=010ixi

= 8 x G ( x ) + x 1 − 10 x =8xG(x)+\frac{x}{1-10x} =8xG(x)+110xx

由此解得:

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(18x1+110x1)

所以:

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=028i+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 1kn,我们假设列车 k k k最后出站。因为每次出站都是站内编号最大的列车出站,所以在列车 k k k进站之前,所有编号比它小的列车都已经出站。对于这 k − 1 k-1 k1辆车,有 c k − 1 c_{k-1} ck1种不同的出站序列。而对于编号比 k k k大的列车,因为每次进站都是站外编号最小的列车进站,所以这些列车会在列车 k k k之后进站。又因为它们会在列车 i i i出站之前出站,所以这些列车有 c n − k c_{n-k} cnk种出站序列。我们不妨令 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=1nck1cnk=k=0n1ckcnk1

这个 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=0cixi,将它平方得到:

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=0ickcik)xi

= ∑ i = 0 ∞ c i + 1 x i =\sum\limits_{i=0}^{\infty}c_{i+1}x^{i} =i=0ci+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±14x

我们现在要舍去一个根。由 C ( x ) C(x) C(x)的定义式知 lim ⁡ x → 0 C ( x ) = c 0 = 1 \lim\limits_{x\rarr0}C(x)=c_{0}=1 x0limC(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}} x0limC(x)=x0lim2x1±14x =x0lim114x 2

所以舍去正号的解,得到 C ( x ) C(x) C(x)

C ( x ) = 1 − 1 − 4 x 2 x C(x)=\frac{1-\sqrt{1-4x}}{2x} C(x)=2x114x

接下来继续计算 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} =2x114x

= 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)i1

= 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=1i!21(21)(23)...(23i)(4x)i1

= 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=2i!2123...(i23)(4x)i1

= 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=2i!(2i3)!!(2x)i1

= 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=2i!(2i3)!!(i1)!(2i2)!!xi1

= 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=2i!(i1)!(2i2)!xi1

= ∑ 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=1i!(i1)!(2i2)!xi1

= ∑ 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=0i+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),这就是卡特兰数的通项公式。

参考文章

卡特兰数部分:用母函数推卡特兰数通项公式

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值