深入理解卡特蘭數及其應用
遞推關系:
它也滿足
這提供了一個更快速的方法來計算卡塔蘭數。
卡特蘭數的應用n個元素順序入棧,出棧順序有多少種?此問題是一個卡特蘭數問題,證明過程如下:
令1表示進棧,0表示出棧,則可轉化為求一個2n位、含n個1、n個0的二進制數,滿足從左往右掃描到任意一位時,經過的0數不多于1數。顯然含n個1、n個0的2n位二進制數共有個,下面考慮不滿足要求的數目。
考慮一個含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)。
從而。證畢。
括號化問題 如,矩陣鏈乘: 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、將一個凸多邊形區(qū)域分成三角形區(qū)域的方法數?
2、一位大城市的律師在她住所以北n個街區(qū)和以東n個街區(qū)處工作。每天她走2n個街區(qū)去上班。如果她從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?
3、在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數? 給頂節(jié)點組成二叉樹的問題 給定N個節(jié)點,能構成多少種不同的二叉樹?
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
上一篇:在vs2010中,輸出當前文件路徑與源文件當前行號的解決方法
欄 目:C語言
下一篇:解析C++中虛析構函數的作用
本文標題:深入理解卡特蘭數及其應用
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4407.html
您可能感興趣的文章
- 01-10深入理解約瑟夫環(huán)的數學優(yōu)化方法
- 01-10深入二叉樹兩個結點的最低共同父結點的詳解
- 01-10深入理解C++中常見的關鍵字含義
- 01-10深入Main函數中的參數argc,argv的使用詳解
- 01-10深入第K大數問題以及算法概要的詳解
- 01-10深入解析最長公共子串
- 01-10深入理解鏈表的各類操作詳解
- 01-10深入N皇后問題的兩個最高效算法的詳解
- 01-10深入理解二叉樹的非遞歸遍歷
- 01-10深入全排列算法及其實現方法


閱讀排行
本欄相關
- 04-02c語言函數調用后清空內存 c語言調用
- 04-02func函數+在C語言 func函數在c語言中
- 04-02c語言的正則匹配函數 c語言正則表達
- 04-02c語言用函數寫分段 用c語言表示分段
- 04-02c語言中對數函數的表達式 c語言中對
- 04-02c語言編寫函數冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數 round c語言
- 04-02c語言分段函數怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數 c語言中怎
- 04-02c語言調用函數求fibo C語言調用函數求
隨機閱讀
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現頁面的局部加載
- 01-10C#中split用法實例總結
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設置