Catalan Numbers 是組合數學中一種應用很廣的數學模型,今天又複習了一遍。html
着重體會了Catalan Numbers的本質約束,求解推導過程,常見的符合Catalan Numbers的模型。ide
1,Catalan Numbers的本質約束svg
我以爲碰到一個模型要判別是否能用Catalan Numbers這種遞推模型來求解,不能光記住那些常見的模型,雖然記憶有助於咱們理解。我想了想Catalan Numbers最本質的約束,最終的得出了一個結論。那就是Catalan Numbers對應的模型必定與一個從1到n的天然數序列的入棧出棧序列同構(對應)。仔細思考一下出棧入棧序列的限制,能夠分爲如下幾點:spa
a,入棧必定要在出棧前,且入棧時必定是從1-n的順序。orm
b,入棧只能一次。htm
c,入棧後必定要出棧。即必定要匹配。blog
2,符合Catalan遞推模型的解釋圖片
a, dyck wordip
模型敘述:Cn表示長度2n的dyck word的個數。Dyck word是一個有n個X和n個Y組成的字串,且全部的部分字串皆知足X的個數大於等於Y的個數。如下爲長度爲6的dyck words:get
模型解釋:把n個X看作1——n的天然數,Y看作#1——#n的序列,其中#i表示i出棧。例如XXXYYY,表示123#3#2#1。也就是X看作入棧,Y看作出棧便可。
b, 買票找零
模型敘述:有2n我的排成一行進入劇場。入場費5元。其中只有n我的有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?
模型解釋:將持5元者到達視做將5元入棧,持10元者到達視做使棧中某5元出棧
C,括號的合法性
模型敘述:給出n對括號(),問有多少種合法的組合。
模型解釋:將左括號看作入棧,右括號看作出棧,便可。
d,二叉樹的個數
模型敘述:問含有n+1個葉子的二叉樹的個數。
模型解釋:將左孩子看作左括號,右孩子看作右括號,這裏指的孩子包括分支節點和葉子節點。而後先序遍歷即對應C。 C(n)。
e,滿二叉樹的個數
同上。
f, 單調路徑
模型敘述:查看圖片http://en.wikipedia.org/wiki/File:Catalan_number_4x4_grid_example.svg
一個單調路徑從格點左下角出發,在格點右上角結束,每一步均爲向上或向右。計算這種路徑的個數。
模型解釋:將向右看作入棧,將向左看作出棧。
3,困惑
對於凸三角形劃分和階梯填充,我仍是找不到很好的切入點,利用本身思考的這個結論來解釋。不過我以爲這種結論對於一些淺顯模型的解釋仍是很直白的,很容易發現的。
4,參考資料
維基百科:http://en.wikipedia.org/wiki/Catalan_number