基礎演算法題 畫樹(卡特蘭數)

2021-10-08 09:21:10 字數 1030 閱讀 7011

卡特蘭數簡介

卡特蘭數又稱卡塔蘭數,英文名catalan number,是組合數學中乙個常出現在各種計數問題**現的數列。

卡特蘭數前幾項為 : 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, …

應用括號化、出棧次序、凸多邊形三角劃分、

給定節點組成二叉樹

卡特蘭數有多種遞推式,最普遍的遞推式:

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2)

卡特蘭數詳解

畫樹

題目鏈結

jm最近學習了二叉樹,現在他想畫一棵8個節點的二叉樹,節點編號1,2,…,8,根節點編號為1

請你幫忙計算一下,jm總共有多少種不同的畫法。

注意:乙個樹如果形狀相同,但是對應的節點編號不一樣,也認為是兩個不同的畫法。

二叉樹不可旋轉,即:左右子樹交換視為不同的畫法。

簡析:排除編號 1 根節點只有 7 個編號能排序

第 n 個卡特蘭數代表 n 個節點的二叉樹畫法

結果: 7 個編號全排列 * 第 8 個卡特蘭數

#include

int fact[10]

, f[10]

;int

main()

//卡特蘭數

f[0]=f[1]

=1;for

(int i=

2; i<=

8; i++)}

printf

("%d"

, f[8]

*fact[7]

);return0;

}

卡特蘭數,高精度卡特蘭數

簡單介紹 卡特蘭數是組合數學中常常出現的乙個數列。個人認為不管是遞推公式還是代表的含義都比斐波那契數列難理解一些。遞推公式 應用 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數

catalan數是組合數學中乙個常在各種計數問題中出現的數列。一般項公式為 cn的另乙個表達形式為 一般來說,我們程式設計時使用遞推關係會更方便計算 或即 c n c 1 c n 1 c 2 c n 2 c n 1 c 1 它的前幾項為 1,1,2,5,14,42,132,429,1430,4862...