Catalan数列
引入
今天聽(tīng)學(xué)長(zhǎng)講了卡特蘭數(shù)列后對(duì)其有了更深的認(rèn)識(shí),在此完善了一下之前的博客加以總結(jié)。
首先用一個(gè)經(jīng)典的例子來(lái)描述一下Catalan數(shù)列,我們有一個(gè)1~n的數(shù)列和一個(gè)大小為n的棧,我們有如下兩種操作:
我們可以顯然地發(fā)現(xiàn),如果我們選擇操作的順序不同,我們最后所形成的出棧序列也不相同,那么有多少種出棧序列呢?
而這個(gè)數(shù)列中的C(n),就是我們所定義的Catalan數(shù)列。
如果我們把所有每一次的操作都寫(xiě)出來(lái),可以得到一個(gè)關(guān)于1和2的操作序列,這個(gè)序列有以下性質(zhì):
?
定義
?
通項(xiàng)公式
通項(xiàng)公式推導(dǎo)
方法1:數(shù)學(xué)方法,摘自某大老的PPT,表示不是很了解,在此向各位大佬請(qǐng)教。
?
?
?
?
?
?即(注意他證明過(guò)程中的初值是)
?
?
方法2:組合數(shù)證明法
?
我們?cè)O(shè)定一個(gè)情景:假設(shè)一個(gè)點(diǎn)從A(0,0)出發(fā)走到B(n,n),我們定義兩種走的方法:
我們從A走到B,一共要走2n步,其中n步為1,n步為2,這樣我們從A走到B的方案也就可以轉(zhuǎn)化為一個(gè)1和2的序列了,而所有的1和2的序列構(gòu)成的排列,即為從A走到B的方案數(shù):
相較之于引言中所提到的序列,要使通過(guò)這種情景生成的序列是滿足Catalan的數(shù)列的方案序列,我們需要的充要條件是從左往右1的個(gè)數(shù)永遠(yuǎn)比2的個(gè)數(shù)少(即向上走過(guò)的次數(shù)不少于向右走過(guò)的次數(shù)),即所走的路徑只存在于紫線的上部,而這個(gè)條件等價(jià)于所形成的路徑與綠線沒(méi)有交點(diǎn)。我們已經(jīng)知道了所有的方案數(shù),我們只需要求出不滿足條件的方案數(shù)就可以了。
舉出一個(gè)反例(紅線)我們把這條線與綠線的第一個(gè)交點(diǎn)之后的部分都關(guān)于綠線對(duì)稱(chēng)得到藍(lán)線部分,加上前面的部分與之形成的路徑構(gòu)成了一條從A(0,0)走向C(n+1,n-1)的路徑,我們可以發(fā)現(xiàn)這樣的藍(lán)線有以下三條性質(zhì):
由此,我們可以發(fā)現(xiàn)不合法的紅色路徑與滿足上述性質(zhì)的藍(lán)色路徑一一對(duì)應(yīng),所以不合法路徑數(shù)就是藍(lán)色路徑數(shù),為
所以,所有合法的路徑數(shù)為:,即Catalan的第n個(gè)數(shù)為
推論
-
- n個(gè)左括號(hào)和n個(gè)右括號(hào)組成的合法括號(hào)序列的數(shù)量為Cat(n)。
- 1,2,···,n經(jīng)過(guò)一個(gè)棧,形成的合法出棧序列的數(shù)量為Cat(n)。
- n個(gè)結(jié)點(diǎn)構(gòu)成的不同二叉樹(shù)的數(shù)量為Cat(n)。
- 在平面直角坐標(biāo)系上每一步只能向右或向上走,從(0,0)走到(n,n)并且除兩個(gè)端點(diǎn)外不接觸直線 y = x的路線數(shù)量為Cat(n)。
- 推廣:在平面直角坐標(biāo)系上,每一步只能向右或上走一步,從(0,0)走到(n,m)(n ≥m)并且除兩個(gè)點(diǎn)外不接觸直線 y = x 的路線的數(shù)量為
轉(zhuǎn)載于:https://www.cnblogs.com/2020pengxiyue/p/9291476.html
總結(jié)
- 上一篇: 各厂商服务器存储默认管理口登录信息(默认
- 下一篇: js获取单选按钮的值