1. 程式人生 > >卡塔蘭數

卡塔蘭數


一、定義和公式:
----------------------------------------------------------------------------------------
令h(0)=1,h(1)=1,catalan數滿足遞推式 :
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)
卡特蘭數又稱卡塔蘭數,卡特蘭數 [組合數學] 常出現在各種計數問題
另類遞推式:

**h(n)=h(n-1)*(4*n-2)/(n+1);**

遞推關係的解為:

**h(n)=C(2n,n)/(n+1) (n=0,1,2,...)**

遞推關係的另類解為:

**h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)**


二、具體問題:
----------------------------------------------------------------------------------------------------------------------------------
1.對於在n位的2進制中,有m個0,其餘為1的catalan數為:C(n,m)-C(n,m-1)

2.矩陣連乘: P=a1×a2×a3×……×an,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?(h(n)種)

3.一個棧(無窮大)的[進棧] 序列為1,2,3,…,n,有多少個不同的出棧序列?

4.在一個[凸多邊形] 中,通過若干條互不相交的對角線,把這個多邊形劃分成了若干個三角形。任務是鍵盤上輸入凸多邊形的邊數n,求不同劃分的方案數f(n)=h(n-2) (n是邊數,邊數大於3)

5.給定N個[節點] ,能構成多少種不同的[二叉搜尋樹]
(能構成h(N)個)

6.給定n對括號,求括號正確配對的字串數,例如:
0對括號:[空序列] 1種可能
1對括號:() 1種可能
2對括號:()() (()) 2種可能
3對括號:((())) ()(()) ()()() (())() (()()) 5種可能
那麼問題來了,n對括號有多少種正確配對的可能呢?
h(n)

7.有n個1和m個-1(n>=m),共n+m個數排成一列,滿足對所有0<=k<=n+m的前k個數的部分和Sk >= 0的排列數?
C (n+m, m) - C (n+m, m-1)