鑑於noip初賽考到了卡特蘭數.....整理一下。湊合著看。
一、介紹
卡特蘭數是一種經典的組合數,經常出現在各種計算中,其前幾項為
: 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, ...
當你打表出來時,別不認識這是卡特蘭數。
二、
卡特蘭序列
通項公式:
遞推公式:
c(n) = c(1)*c(n-1) + c(2)*c(n-2) + ... + c(n-1)c(1),n>=2
一般性質:
三、證明 (挺神奇的.jpg
給你乙個只有0和1的序列,n個0和n個1,從左向右掃瞄,要求任何是乙個
位置字首1
的個數大於等於
字首0的個數,
若不符合要求,則為不合法序列。
則合法序列的個數為c(n,2n)-c(n+1,2n);
證明這個問
題的答題思路是用所有序列的
個數-不符合條件的個數。
s1:如果不考慮字首1的個數大於等於0的個數,則方案數有c(n,2n)種。
s2:那麼不符合條件的方案數有多少種呢?接下來證明,不符合條件的方案數
有c(n+1,2n)種。
假如n=5,我隨便寫一種不符合條件的序列。
1010010101
從左往右掃瞄,發現到第5個位置,0的個數為3,1的個數為2,這是第乙個
不符合要求的位置。那麼我們
可以知道任何
個不符合要求的序列,一定
存在乙個奇數字,此時字首有m+1個0和m個1。則這個位置後面
還有n-(m+1)
個0和(n-m)個1.
此時把後面的0改成1,1改成0;那麼後面就有了n-(m+1)個1
和(n-m)個0;
那麼總的序列就有,(m+1)+(n-m)=n+1個0,
m+(n-m-1)=n-1個
1。此時序列就變成有n+1個0,n-1個
1的序列。
由於0比1多兩個。所以這個序列
無論怎麼排一定不合法。
設第乙個不合法的位置是x,則前
有m+1和0和m
個1。這時把x後的0變成1,1變成0後,這個序列又回到了n個1,n個0的序列。
所以不符
合條件的序列個數
就是n+1個
0和n-1個1的所有排列。
四、應用
下面其實都是網上抄的...
(1)對於乙個n*n的正方形網格,每次只能向右或者向上移動一格,那麼從左下角到右上角
所有在副對角線右下方的路徑總數為
(2)對凸n+2邊形進行不同的三角形分割(只連線頂點對形成n個三角形)數為cn
(3)n個數入棧後的出棧的排列總數是
(4)n層的階梯切割為n個矩形的切法數也是
(5)在乙個2*n的格仔中填入1到2n這些數值使得每個格仔內的數值都
比其右邊和上邊的所有數值都小的情況數也是
(6)我們可以將應用1變換形式:將-1看成右括號,+1看成左括號,就變成了左括號和右括號各有n個時,合法括號表示式的個數。比如2個左括號和2個右括號組成的合法表示式有
種,是()()和(())。
卡特蘭數,高精度卡特蘭數
簡單介紹 卡特蘭數是組合數學中常常出現的乙個數列。個人認為不管是遞推公式還是代表的含義都比斐波那契數列難理解一些。遞推公式 應用 1.cn表示長度2n的dyck word的個數。dyck word是乙個有n個x和n個y組成的字串。且全部的字首字串皆滿足x的個數大於等於y的個數。下面為長度為6的dyc...
卡特蘭數和超級卡特蘭數
這篇部落格主要是想講一下超級卡特蘭數 大施洛德數 順帶就想講一下卡特蘭數.卡特蘭數記為 c n c 1 1 forall n geq 2,c n sum c i c 前幾項大概是 1,1,2,5,14,42,132.直接遞推未免效率太低,我們考慮用生成函式優化.顯然有 c x c x 2 x 解得 ...
演算法學習筆記 卡特蘭數
卡特蘭數 catalan numbers,oeis a000108 opens new window 是組合數學中乙個常出現在各種計數問題中的數列。數列的前幾項為 1,1,2,5,14,42,132,429,1430,4862,卡特蘭數是乙個非常神奇的序列,它與許多看似千差萬別的問題都有著緊密的關聯...