大佬博客:傳送門
組合數公式:
一、關於卡特蘭數
卡特蘭數是一種經典的組合數,經常出現在各種計算中,其前幾項為 : 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, ...
二、卡特蘭數的一般公式
卡特蘭數滿足以下性質:
令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)=c(2n,n)-c(2n,n+1)(n=0,1,2,...)。這個公式還可以更簡單得化為h(n)=C(2n,n)/(n+1)。后一個公式都可以通過前一個公式經過幾步簡單的演算得來,大家可以拿起筆試試,一兩分鍾就可以搞定。
1. 出棧次序
2. 01序列
3. ‘+1’ ‘-1’序列
4. 括號序列
5. 找零問題
6. 矩陣鏈乘
7. 二叉樹計數
8. 凸多邊形划分
9. 圓上n條線段
10. 單調路徑
11. 填充階梯圖形
12. 摞碗問題
13. 汽車胡同加油問題
14. 還書借書問題
15. 高矮排隊問題
典例:
1. 出棧次序
一個棧(無窮大)的進棧序列為1,2,3,…,n,有多少個不同的出棧序列?
2. 01序列
給出一個n,要求一個長度為2n的01序列,使得序列的任意前綴中1的個數不少於0的個數, 有多少個不同的01序列?
以下為長度為6的序列:
111000 101100 101010 110010 110100
3. ‘+1’ ‘-1’序列
n個+1和n個-1構成的2n項 a1,a2,⋅⋅⋅,a2na1,a2,⋅⋅⋅,a2n,其部分和滿足非負性質,即a1+a2+⋅⋅⋅+ak>=0a1+a2+⋅⋅⋅+ak>=0,(k=1,2,···,2n) ,有多少個不同的此序列?
4. 括號序列
n對括號有多少種匹配方式?
5. 找零問題
2n個人要買票價為五元的電影票,每人只買一張,但是售票員沒有錢找零。其中,n個人持有五元,另外n個人持有十元,問在不發生找零困難的情況下,有多少種排隊方法?
6. 矩陣鏈乘
P=a1×a2×a3×……×an,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?
7. 二叉樹計數
有n個節點構成的二叉樹(非葉子節點都有2個兒子),共有多少種情形?
有n+1個葉子的二叉樹的個數?、
8. 凸多邊形划分
在一個n邊形中,通過不相交於n邊形內部的對角線,把n邊形拆分為若干個三角形,問有多少種拆分方案?
9. 圓上n條線段
在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數?
10. 單調路徑
一位大城市的律師在他住所以北n個街區和以東n個街區處工作,每天他走2n個街區去上班。如果他從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?
11. 填充階梯圖形
用n個長方形填充一個高度為n的階梯狀圖形的方法個數?
12. 摞碗問題
飯后,姐姐洗碗,妹妹把姐姐洗過的碗一個一個放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問:小妹摞起的碗有多少種可能的方式?
13. 汽車胡同加油問題
一個汽車隊在狹窄的路面上行駛,不得超車,但可以進入一個死胡同去加油,然后再插隊行駛,共有n輛汽車,問共有多少種不同的方式使得車隊開出城去?
14. 還書借書問題
在圖書館一共2n個人在排隊,n個還《面試寶典》一書,n個在借《面試寶典》一書,圖書館此時沒有了面試寶典了,求他們排隊的總數
15. 高矮排隊問題
2n個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人高,問排列方式有多少種?