1. 程式人生 > >卡特蘭數公式

卡特蘭數公式

公式一

C 2 n n C

2 n n + 1 = C
2 n n
n + 1
C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

題目一

假設有n對左右括號,請求出合法的排列有多少個?合法是指每一個括號都可以找到與之配對的括號,比如n=1時,()是合法的,)(不合法。
分析:n對括號的排列共有 C 2 n n C_{2n}^n 種,錯誤的排列共有 C 2 n n + 1 C_{2n}^{n+1} C 2 n n 1 C_{2n}^{n-1} 種。最終結果為
C 2 n n C 2 n n + 1 = C 2 n n n + 1 C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

題目二

n個數進出棧的順序有多少種?
分析:出棧的時候棧裡必須有數,因此與題目一相同。
C 2 n n C 2 n n + 1 = C 2 n n n + 1 C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

題目三

2n個人排隊買票,n個人拿5元錢,n個人拿10元錢,票價是5元一張,每個人買一張票,售票員手中沒有零錢,問有多少種排隊方法讓售票員可以順利賣票?
分析:賣票的過程中必須要有5元在,因此5元可以看成左括號,10元看成右括號,與題目一相同。

公式二

f ( n ) = f ( 0 ) f ( n 1 ) + f ( 1 ) f ( n 2 ) + f ( 2 ) f ( n 3 ) + + f ( n 1 ) f ( 0 ) = C 2 n n n + 1 \begin{aligned} f(n) &= f(0)*f(n-1) +f(1)*f(n-2)+f(2)*f(n-3)+\ldots+f(n-1)*f(0)\\ &=\frac{C_{2n}^n}{n+1} \end{aligned}

題目四

求n個無差別的節點構成的二叉樹有多少種不同的結構。
分析:假設n個無差別的節點構成的不同結構樹為 f ( n ) f(n)
f ( 0 ) f(0) 表示空樹,所以規定只有1種結構。
將n個節點排成一排,如果把第1個節點當做頭剩餘節點就是右子樹那麼共有 f ( 0 ) f ( n 1 ) f(0)f(n-1) 種排列。
如果把第2個節點當做頭,第1個節點為左子樹,第3個節點及以後為右子樹,那麼共有 f ( 1 ) f ( n 2 ) f(1)f(n-2) 中排列,以此類推,直到 f ( n 1 ) f ( 0 ) f(n-1)f(0)
假設 f ( 0 ) = 1 , f ( 1 ) = 1 , f ( 2 ) = 2 , f ( 3 ) = 5 f(0)=1,f(1)=1,f(2)=2,f(3)=5
f ( n ) = f ( 0 ) f ( n 1 ) + f ( 1 ) f ( n 2 ) + f ( 2 ) f ( n 3 ) + + f ( n 1 ) f ( 0 ) = C 2 n n n + 1 \begin{aligned} f(n) &= f(0)*f(n-1) +f(1)*f(n-2)+f(2)*f(n-3)+\ldots+f(n-1)*f(0)\\ &=\frac{C_{2n}^n}{n+1} \end{aligned}

題目五

12個高矮不同的人,拍成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人要高,問排列方式有多少種?
分析:假設第一排的人編號為0,第二排的人編號為1。
如果為000011010111,則前4個人在第一排,第5,6個人在第二排,第7個人在第一排,第8個人在第二排,第9個人在第一排,第10,11,12人在第二排。
如果有字首1比0多的話,說明必然會出現不合法的情況。題目變為任意字首不能出現1比0多的情況,所以與題目一相同。