卡特蘭數是乙個比較有意思的數列,有幾個經典問題的模型如下:
1.n對括號的合法表示式有多少種可能,其中答案為c(n) (表示卡特蘭數列的第n項)。
2.有n個節點的二叉樹的所有可能形態有多少種,也是c(n)。
3.計算有n+1個葉節點的滿二叉樹有多少種,也是c(n)。
4.序列的所有排列中不出現 123 或者任何乙個長度為三的指定序列的所有可能數。
5.把n+2邊形劃分成三角形(連線不相鄰頂點並且使得n+2邊形被劃分後只有三角形)的所有可能數。
其中卡特蘭數的前幾項如下:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, …
卡特蘭數求法:
1. 遞迴形式:
採用該方法計算第n項卡特蘭數的時間複雜度為:
2.動態規劃:
#includeusing namespace std;
// a dynamic programming based function to find nth
// catalan number
unsigned long int catalandp(unsigned int n)
return res;}
// a binomial coefficient based function to find nth catalan
// number in o(n) time
unsigned long int catalan(unsigned int n)
// driver program to test above functions
int main()
本文參考自:
文中**均來自此**!
Catalan Number 卡特蘭數
其前幾項為 1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790,477638700,1767263190,6564120420,24466267020,9148256...
卡特蘭數(catalan number)
卡塔蘭數是組合數學中乙個常在各種計數問題中出現的數列。公式為 前幾項為 n 0,1,2,3,4,5時 1,1,2,5,14,42 2.1 乙個棧的進棧次序為1 2 3 n。有多少種不同的出棧次序?當 2.2 有n個結點,總共能構成幾種不同的二叉樹?當 2.3 其它常見問題 1.n對括號有多少種匹配方...
卡特蘭數 Catalan number
卡特蘭數的一種常用計算公式 c 2n,n c 2n,n 1 從 0,0 出發到 n,n 每次只能向右或向上,不可以越過藍線,即不能走到紅線上。如果不受紅線限制從 0,0 出發到 n,n 的所有方案有c 2n,n 中,可以理解為在2n次移動中選擇n次做向右或向上運動。那麼拿全集減去走到紅線上的方案就是...