国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

深入學習卡特蘭數及其應用方法

2020-02-24 14:31:17
字體:
來源:轉載
供稿:網友
卡特蘭數是由加泰羅尼亞解凸多邊形的劃分得到的序列。它在數學競賽、信息學競賽、組合數學、計算機程序設計等方面各有不同,武林技術頻道小編將為大家介紹深入學習卡特蘭數及其應用方法,希望對你學習這方面知識有幫助!
?
Catalan number,卡特蘭數又稱卡塔蘭數,是組合數學中一個常出現在各種計數問題中出現的數列。以比利時的數學家歐仁·查理·卡塔蘭 (1814–1894)命名。
令h(0)=1,h(1)=1,catalan數滿足遞推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
catalan數公式的一般是形式為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?C_n = /frac{1}{n+1}{2n /choose n} = /frac{(2n)!}{(n+1)!n!}

遞推關系:

C_0 = 1 /quad /mbox{and} /quad C_{n+1}=/sum_{i=0}^{n}C_i/,C_{n-i}/quad/mbox{for }n/ge 0.

它也滿足

C_0 = 1 /quad /mbox{and} /quad C_{n+1}=/frac{2(2n+1)}{n+2}C_n,?
這提供了一個更快速的方法來計算卡塔蘭數。

卡特蘭數的應用n個元素順序入棧,出棧順序有多少種?此問題是一個卡特蘭數問題,證明過程如下:

令1表示進棧,0表示出棧,則可轉化為求一個2n位、含n個1、n個0的二進制數,滿足從左往右掃描到任意一位時,經過的0數不多于1數。顯然含n個1、n個0的2n位二進制數共有{2n /choose n}個,下面考慮不滿足要求的數目。

考慮一個含n個1、n個0的2n位二進制數,掃描到第2m+1位上時有m+1個0和m個1(容易證明一定存在這樣的情況),則后面的0-1排列中必有n-m個1和n-m-1個0。將2m+2及其以后的部分0變成1、1變成0,則對應一個n+1個0和n-1個1的二進制數。

反過來,任何一個由n+1個0和n-1個1組成的2n位二進制數,由于0的個數多2個,2n為偶數,故必在某一個奇數位上出現0的累計數超過1的累計數。同樣在后面部分0和1互換,使之成為由n個0和n個1組成的2n位數,即n+1個0和n-1個1組成的2n位數必對應一個不符合要求的數。
因而不合要求的2n位數與n+1個0,n-1個1組成的排列一一對應。 顯然,不符合要求的方案數為c(2n,n+1)。

從而C_n = {2n /choose n} - {2n /choose n + 1} = /frac{1}{n+1}{2n /choose n}。證畢。

?

括號化問題? ?如,矩陣鏈乘: P=a1×a2×a3×……×an,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?(h(n)種)

?

?

出棧次序問題  
1、一個棧(無窮大)的進棧序列為1,2,3,..n,有多少個不同的出棧序列?
2、有2n個人排成一行進入劇場。入場費5元。其中只有n個人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?(將持5元者到達視作將5元入棧,持10元者到達視作使棧中某5元出棧)。


將多邊行劃分為三角形問題  
1、將一個凸多邊形區域分成三角形區域的方法數?
2、一位大城市的律師在她住所以北n個街區和以東n個街區處工作。每天她走2n個街區去上班。如果她從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?
3、在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數?

?

?

給頂節點組成二叉樹的問題  給定N個節點,能構成多少種不同的二叉樹?
?
一些筆試題
1、16個人按順序去買燒餅,其中8個人每人身上只有一張5塊錢,另外8個人每人身上只有一張10塊錢。燒餅5塊一個,開始時燒餅店老板身上沒有錢。16個顧客互相不通氣,每人只買一個。問這16個人共有多少種排列方法能避免找不開錢的情況出現。
h(8)=16!/(8!*9!)=1430,所以總數=h(8)*8!*8!=16!/9
2、在圖書館一共6個人在排隊,3個還《面試寶典》一書,3個在借《面試寶典》一書,圖書館此時沒有了面試寶典了,求他們排隊的總數?
h(3)=6!/(3!*4!)=5,所以總數=h(3)*3!*3!=180

?以上就是武林技術頻道小編為大家帶來的深入學習卡特蘭數及其應用方法,如果你想了解更多的編程知識,請繼續關注武林技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 江达县| 股票| 田东县| 玉门市| 河曲县| 广平县| 调兵山市| 峨眉山市| 黔南| 高台县| 监利县| 财经| 竹北市| 海宁市| 咸丰县| 磴口县| 太白县| 白河县| 南宁市| 涟源市| 吉首市| 南昌县| 宣城市| 伊春市| 芮城县| 随州市| 饶阳县| 玛纳斯县| 浦县| 汽车| 郑州市| 清镇市| 平果县| 孟津县| 平湖市| 临朐县| 乐东| 东辽县| 宜兰市| 确山县| 固原市|