1. 程式人生 > >卡特蘭數——Catalan Number

卡特蘭數——Catalan Number

卡特蘭數:數學組合中一個常出現在各種計數問題中的數列,以比利時的數學家歐仁·查理·卡特蘭的名字命名。


從第0項開始依次為:1,1,2,5,14,42,132,429,1430,4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...


遞推公式:a_{n+1}=a_{1}a_{n}+a_{2}a_{n-1}+a_{3}a_{n-2}+\cdot \cdot \cdot +a_{n}a_{1};      a_{n}=a_{n-1}*(4n-2)/(n+1)


遞推關係的解:a_{n}=C_{2n}^{n}/(n+1)=C_{2n}^{n}-C_{2n}^{n-1}

應用 

 (1)矩陣連乘括號化:P=A_{0}\cdot A_{1}\cdot \cdot \cdot A_{n};根據乘法結合律,不改變矩陣的順序,只用括號表示成對的乘積,則括號化方案共:a_{n}種。

(2)出棧次序:不考慮棧的大小,若入棧順序為:a_{0},a_{1},a_{2},\cdot \cdot \cdot,a_{n},則共有a_{n}種出棧序列。

(3)凸多邊形三角劃分:凸n邊形,使用若干不相交的對角線將其劃分成若干個三角形,,共有a_{n}種劃分方案。

(4)二叉樹的組成:使用n個節點構建二搜尋樹,共能構建a_{n}種二叉搜尋樹。

(5)括號正確匹配:有n對括號,即n個"("和n個")",排列所有的括號,使每一個"("都有唯一的")"與之匹配,共有a_{n}種排列方式。