應國老師邀請,寫了一篇關於卡特蘭數的部落格。如有謬誤,敬請同學們指出!——ggn 2017.12.9
其實我並不是很了解卡塔蘭數的一些性質,我不得不承認這並不是一篇很好的部落格。。
下周一月考,因為寫部落格耗費了大量時間,被我奶教育了。。(還有很多沒寫完的內容,敬請諒解)
在下文中出現這些符號將不再定義它們的含義:cm
n=n!
(n−m
)!m!
=cm−
1n−1
+cmn
−1:表示組合數,表示從n個不同的物品中選出乙個元素個數為m的子集的總方案數。∑n
k=1f
(k)=
f(1)
+f(2
)+..
+f(n
) :表示求和。hi
:表示卡塔蘭數的第
i 項,本文中的卡塔蘭數的下標統一從1開始,但我看到的大多數材料中的卡塔蘭數的下標都是從0開始的(這是本文的乙個不太好的地方)。
卡塔蘭數的增長較快,實驗表明,用long long只能儲存卡塔蘭數的前36位。hn
=∑i=
1n−1
hihn
−i:n
>1h
1=1
int h(int n)
return ans;
}
低效遞迴實現的時間複雜度巨差,我個人估計其時間複雜度為o(
n!) 。
#define maxn (16384+1)
long
long h[maxn];
int vis[maxn];//實現記憶化,保證每個資料只計算一次
long
long h(int n)
}return h[n];
}
#define maxn (16384+1)
long
long h[maxn];
void solve(int n)}}
這兩種方法計算的時間複雜度為o(
n2) 。hn
+1=1
n+1⋅
cn2n
=cn2
n−cn
−12n
hn=hn−1
×4n−
6n(感謝高楊大神提供的o(
n)的先進遞推方式!)
#define maxn (100+1)
long
long h[maxn];
void solve(int n)
}
1.模擬「01串」的排列
乙個長度為2n
的「01串」,其中包括n個0,n個1。要求這個序列的任意長度的字首中包含「1」的數目大於等於「0」的數目。求這樣的序列的個數,其個數即為hn
+1。2.模擬網格中的移動
在乙個n×n
的網格中,只允許向右和向上走,並且只允許走網格的下半部分(即橫座標大於等於縱座標的部分),從左下角走到右上角的方案數。這個方案數為hn
在所有x=y
的位置上發現了卡塔蘭數。
洛谷: p1044 棧[2017.12.27] 2017 cdqz 聯訊 day9 學習了一種極其科學的卡塔蘭數遞推式的證明方法,但是因為需要插圖,我有空再補上。。洛谷: p1722 矩陣 ii
[2017.12.28] 引用(著名業餘)數學家費馬的一句話
「我已經發現了一種極其巧妙的證明方法證明它(「它」指費馬大定理),可惜這裡空白地方太小(還有就是我太懶了),不下。」 ——皮耶·德·費馬↑ 這張揭示了卡塔蘭數線性遞推證明的全部奧秘,待腦洞大開的同學們去探索、追尋。。
p.s. : 大約2023年左右,法國學者費馬在閱讀丟番圖(diophatus)《算術》拉丁文譯本時,曾在第11卷第8命題旁寫道:「將乙個立方數分成兩個立方數之和,或乙個四次冪分成兩個四次冪之和,或者一般地將乙個高於二次的冪分成兩個同次冪之和,這是不可能的。關於此,我確信已發現了一種美妙的證法 ,可惜這裡空白的地方太小,寫不下。」(拉丁文原文: 「cuius rei demonstrationem mirabilem sane detexi. hanc marginis exiguitas non caperet.」)
卡特蘭數,高精度卡特蘭數
簡單介紹 卡特蘭數是組合數學中常常出現的乙個數列。個人認為不管是遞推公式還是代表的含義都比斐波那契數列難理解一些。遞推公式 應用 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
問題 程式設計之美 第4.3節中提到了 買票找零 問題,查閱了下資料,此問題和卡特蘭數 cn有關,其定義如下 卡特蘭數真是乙個神奇的數字,很多組合問題的數量都和它有關係,例如 yyy xyxxyy xyxyxy xxyyxy xxyxyy ab c d a bc d ab cd a bc d a b...