這篇部落格主要是想講一下超級卡特蘭數(大施洛德數),順帶就想講一下卡特蘭數.
卡特蘭數記為\(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\)
解得\(c(x)=\over 2}\)
將\((1-4x)^\)用廣義二項式定理展開
得到\(c(x)\)中\(x^n\)項係數為\(\frac 1 n \binom \)
1.\(n+1\)邊形的三角剖分方案數.
注意到任意三角形一定是某一條邊在多邊形上,然後再選乙個不是這條邊的端點的點,而且注意到這樣乙個三角形不會被計算兩次,所以會得到乙個類似於卡特蘭數的遞推式.
如果直接列舉一條邊然後分成兩邊的話,是算不對的,因為可能乙個點不與多邊形上任意非相鄰點連邊.如果要強行這麼算的話,那就得列舉所有的邊然後除以算重的次數.
2.\(n\)個數的連乘積,只用結合律(加括號)來改變乘法順序,問有多少中乘法的順序.
考慮列舉最後是哪兩個數相乘,不難發現是卡特蘭數的形式.
3.\(n-1\)對括號的括號序列的合法方案數.
列舉第乙個左括號所對應的右括號的位置即可.
4.從(0,0)到(n-1,n-1),每次只能往右或往上走,求不超過\(y=x\)這條直線的方案數.
考慮第一步肯定是往右邊走,然後列舉第乙個經過\(y=x\)這條直線的位置.
另外一種思路,將條件變成不經過\(y=x+1\)這條直線,那麼尋找(0,0)關於\(y=x+1\)的對稱點
(-1,1),顯然每一條從(0,0)到(n-1,n-1)的不合法路徑對應一條從(-1,1)到(n-1,n-1)的不合法路徑.
記超級卡特蘭數為\(s_i\)
有\(s_1=1\)
\(\forall i \geq 2,s_i=s_+\sum_^s_is_\)
寫成生成函式的形式是\(s(x)=xs(x)+s(x)^2+x\)
解得\(s(x)= \over 2}\)
如果還是用廣義二項式定理展開的話,經過複雜化簡,可以得到\(s_n=\sum_^n \binom c_i\),後面我們可以看見,這個式子有著清晰的組合意義.
不過網上還有一種\(o(n)\)遞推的方法,簡而言之就是快速求出\(\sqrt\)
接下來給出的一種方法,可以在\(o(nk)\)的複雜度快速求出k次多項式開方後前n項的值
設要開方的多項式為\(p(x)\),開方後的多項式為\(f(x)\).
有\(f(x)=p(x)^=\sum_^ f_i x^i\)
兩邊求導,可得\(f'(x)=\frac 12 p(x)^ p'(x)\)
有\(f(x)p'(x)=f'(x)p(x)\)
對比每一項係數,不難得到k+1項的遞推式.
最後給出遞推公式:\((n+1)f_=(6n-3)f_n-(n-2)f_\),不過要注意這個遞推公式除了第一項其他的項都是超級卡特蘭數的\(\frac12\)
組合意義
相比卡特蘭數,超級卡特蘭數的唯一區別就是在遞推的時候加了乙個\(s_\),那麼其組合意義也可以看做是卡特蘭數的擴充套件.
1.\(n+1\)邊形的任意剖分方案數.
還是考慮列舉一條多邊形上的邊,那麼有可能這條邊仍然與另乙個點拉成乙個三角形,也有可能這條邊上沒有,那麼把這兩種加起來就是定義的遞推式
2.括號序列,每個位置可能左括號,右括號和0.括號對數與0的個數之和為n-1, 問合法的括號序列數.
同樣列舉第乙個是左括號還是0.
值得一提的是,可以看成先插括號再插0,那麼列舉括號對數i,0有n-i-1個,需要放入2i+1個位置中,那麼不難得到上面通過廣義二項式推出來的式子.
3.從(0,0)到(n-1,n-1),每次能往右,往上,往右上走,求不超過\(y=x\)這條直線的方案數.
列舉第一次是走右上還是走右.
同樣使用容斥思想,把答案轉化為從(0,0)到(n-1,n-1)減去(-1,1)到(n-1,n-1).
那麼從(0,0)到(n,m)的路徑條數怎麼求呢.可以考慮列舉往右上的次數,然後還是考慮先走右和上,然後再把走右上的插入即可.
卡特蘭數,高精度卡特蘭數
簡單介紹 卡特蘭數是組合數學中常常出現的乙個數列。個人認為不管是遞推公式還是代表的含義都比斐波那契數列難理解一些。遞推公式 應用 1.cn表示長度2n的dyck word的個數。dyck word是乙個有n個x和n個y組成的字串。且全部的字首字串皆滿足x的個數大於等於y的個數。下面為長度為6的dyc...
卡特蘭數 Catalan
問題 程式設計之美 第4.3節中提到了 買票找零 問題,查閱了下資料,此問題和卡特蘭數 cn有關,其定義如下 卡特蘭數真是乙個神奇的數字,很多組合問題的數量都和它有關係,例如 yyy xyxxyy xyxyxy xxyyxy xxyxyy ab c d a bc d ab cd a bc d a b...
卡特蘭數(2)
原部落格 卡特蘭數 1 通項公式 h n c n,2n n 1 2n n n 1 2遞推公式 h n 4 n 2 n 1 h n 1 h n h 0 h n 1 h 1 h n 2 h n 1 h 0 h n c n,2n c n 1,2n 3前幾項為 h 0 1,h 1 1,h 2 2,h 3 5...