日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

卡特兰数的性质及其应用扩展

發(fā)布時間:2023/11/30 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卡特兰数的性质及其应用扩展 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ??問題描述:卡塔蘭數(shù),是組合數(shù)學中一個常出現(xiàn)在各種計數(shù)問題中出現(xiàn)的數(shù)列。輸入一個整數(shù)n,計算h(n)。其遞歸式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2,h(0) = h(1) = 1) ? ?該遞推關系的解為:h(n)=C(2n,n)/(n+1) (n=1,2,3,...)

? ? ? ??思路:直接根據(jù)遞歸式,寫出相應的算法

? ? ? ? 參考代碼

//函數(shù)功能: 計算Catalan的第n項
//函數(shù)參數(shù): n為項數(shù)
//返回值: 第n個Catalan數(shù)
int Catalan(int n)
{
if(n <= 1)
return 1;

int *h = new int [n+1]; //保存臨時結果
h[0] = h[1] = 1; //h(0)和h(1)
for(int i = 2; i <= n; i++) //依次計算h(2),h(3)...h(n)
{
h[i] = 0;
for(int j = 0; j < i; j++) //根據(jù)遞歸式計算 h(i)= h(0)*h(i-1)+h(1)*h(i-2) + ... + h(i-1)h(0)
h[i] += (h[j] * h[i-1-j]);
}
int result = h[n]; //保存結果
delete [] h; //注意釋放空間
return result;
}

應用1描述:n對括號有多少種匹配方式?

? ? ? ?思路:n對括號相當于有2n個符號,n個左括號、n個右括號,可以設問題的解為f(2n)。第0個符號肯定為左括號,與之匹配的右括號必須為第2i+1字符。因為如果是第2i個字符,那么第0個字符與第2i個字符間包含奇數(shù)個字符,而奇數(shù)個字符是無法構成匹配的。

? ? ? ?通過簡單分析,f(2n)可以轉化如下的遞推式 f(2n) = f(0)*f(2n-2) + f(2)*f(2n - 4) + ... + f(2n - 4)*f(2) + f(2n-2)*f(0)。簡單解釋一下,f(0) * f(2n-2)表示第0個字符與第1個字符匹配,同時剩余字符分成兩個部分,一部分為0個字符,另一部分為2n-2個字符,然后對這兩部分求解。f(2)*f(2n-4)表示第0個字符與第3個字符匹配,同時剩余字符分成兩個部分,一部分為2個字符,另一部分為2n-4個字符。依次類推。

? ? ? ?假設f(0) = 1,計算一下開始幾項,f(2) = 1, f(4) = 2, f(6) = 5。結合遞歸式,不難發(fā)現(xiàn)f(2n) 等于h(n)

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

? ? ? ?思路:可以這樣考慮,首先通過括號化,將P分成兩個部分,然后分別對兩個部分進行括號化。比如分成(a1)×(a2×a3.....×an),然后再對(a1)和(a2×a3.....×an)分別括號化;又如分成(a1×a2)×(a3.....×an),然后再對(a1×a2)和(a3.....×an)括號化。

? ? ? ?設n個矩陣的括號化方案的種數(shù)為f(n),那么問題的解為

? ? ? ? f(n) = f(1)*f(n-1) + f(2)*f(n-2) + f(3)*f(n-3) + f(n-1)*f(1)。f(1)*f(n-1)表示分成(a1)×(a2×a3.....×an)兩部分,然后分別括號化。

? ? ? ?計算開始幾項,f(1) = 1, f(2) = 1, f(3) = 2, f(4) = 5。結合遞歸式,不難發(fā)現(xiàn)f(n)等于h(n-1)

? ? ? 應用3描述:一個棧(無窮大)的進棧序列為1,2,3,…,n,有多少個不同的出棧序列?

? ? ? 思路:這個與加括號的很相似,進棧操作相當于是左括號,而出棧操作相當于右括號。n個數(shù)的進棧次序和出棧次序構成了一個含2n個數(shù)字的序列。第0個數(shù)字肯定是進棧的數(shù),這個數(shù)相應的出棧的數(shù)一定是第2i+1個數(shù)。因為如果是2i,那么中間包含了奇數(shù)個數(shù),這奇數(shù)個肯定無法構成進棧出棧序列。

? ? ? ?設問題的解為f(2n), 那么f(2n) = f(0)*f(2n-2) + f(2)*f(2n-4) + f(2n-2)*f(0)。f(0) * f(2n-2)表示第0個數(shù)字進棧后立即出棧,此時這個數(shù)字的進棧與出棧間包含的數(shù)字個數(shù)為0,剩余為2n-2個數(shù)。f(2)*f(2n-4)表示第0個數(shù)字進棧與出棧間包含了2個數(shù)字,相當于1 2 2 1,剩余為2n-4個數(shù)字。依次類推。

? ? ? ?假設f(0) = 1,計算一下開始幾項,f(2) = 1, f(4) = 2, f(6) = 5。結合遞歸式,不難發(fā)現(xiàn)f(2n) 等于h(n)

? ? ? ?應用4描述:n個節(jié)點構成的二叉樹,共有多少種情形?

? ? ? ?思路:可以這樣考慮,根肯定會占用一個結點,那么剩余的n-1個結點可以有如下的分配方式,T(0, n-1),T(1, n-2),...T(n-1, 0),設T(i, j)表示根的左子樹含i個結點,右子樹含j個結點。

? ? ? ?設問題的解為f(n),那么f(n) = f(0)*f(n-1) + f(1)*f(n-2) + .......+ f(n-2)*f(1) + f(n-1)*f(0)。假設f(0) = 1,那么f(1) = 1, f(2) = 2, f(3) = 5。結合遞推式,不難發(fā)現(xiàn)f(n)等于h(n)

? ? ? ?應用5描述:在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數(shù)?

? ? ? ?思路:以其中一個點為基點,編號為0,然后按順時針方向將其他點依次編號。那么與編號為0相連點的編號一定是奇數(shù),否則,這兩個編號間含有奇數(shù)個點,勢必會有個點被孤立,即在一條線段的兩側分別有一個孤立點,從而導致兩線段相交。設選中的基點為A,與它連接的點為B,那么A和B將所有點分成兩個部分,一部分位于A、B的左邊,另一部分位于A、B的右邊。然后分別對這兩部分求解即可。

? ? ? ?設問題的解f(n),那么f(n) = f(0)*f(n-2) + f(2)*f(n-4) + f(4)*f(n-6) + ......f(n-4)*f(2) + f(n-2)*f(0)。f(0)*f(n-2)表示編號0的點與編號1的點相連,此時位于它們右邊的點的個數(shù)為0,而位于它們左邊的點為2n-2。依次類推。

? ? ? ?f(0) = 1, f(2) = 1, f(4) = 2。結合遞歸式,不難發(fā)現(xiàn)f(2n) 等于h(n)

? ? ??應用6描述:求一個凸多邊形區(qū)域劃分成三角形區(qū)域的方法數(shù)?

? ? ? 思路:以凸多邊形的一邊為基,設這條邊的2個頂點為A和B。從剩余頂點中選1個,可以將凸多邊形分成三個部分,中間是一個三角形,左右兩邊分別是兩個凸多邊形,然后求解左右兩個凸多邊形。

? ? ? 設問題的解f(n),其中n表示頂點數(shù),那么f(n) = f(2)*f(n-1) + f(3)*f(n-2) + ......f(n-2)*f(3) + f(n-1)*f(2)。f(2)*f(n-1)表示三個相鄰的頂點構成一個三角形,那么另外兩個部分的頂點數(shù)分別為2和n-1。

? ? ? 設f(2) = 1,那么f(3) = 1, f(4) = 2, f(5) = 5。結合遞推式,不難發(fā)現(xiàn)f(n) 等于h(n-2)

? ? ??應用7描述:有2n個人排成一行進入劇場。入場費5元。其中只有n個人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?

? ? ?思路:可以將持5元買票視為進棧,那么持10元買票視為5元的出棧。這個問題就轉化成了棧的出棧次序數(shù)。由應用三的分析直接得到結果,f(2n) 等于h(n)

參考來自:?http://blog.csdn.net/wuzhekai1985

還有個擴展是super ?Catalan 資料不容易找到,以下是老美的一點介紹,記住公式即可:http://mathworld.wolfram.com/SuperCatalanNumber.html


總結

以上是生活随笔為你收集整理的卡特兰数的性质及其应用扩展的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: xxx视频网站 | 美女毛片在线 | 成年人免费看视频 | 精品欧美| 久久作爱视频 | 激情五月开心婷婷 | 交专区videossex非洲 | 精品人妻少妇一区二区三区 | 亚欧洲精品视频在线观看 | 成人亚洲精品久久久久软件 | 久久不卡 | 亚洲av熟女高潮一区二区 | 成人在线亚洲 | 成年人在线观看视频免费 | 美女毛片在线观看 | 成人自拍视频 | 国产精品久久久久久久久久妞妞 | 欧美国产日韩在线观看 | 中文字幕人妻无码系列第三区 | 这里有精品视频 | 久久影| 国产日韩激情 | 国产真实的和子乱拍在线观看 | 91一起草 | 91aaaa| 国产亚洲不卡 | 四虎在线精品 | 天天干天天舔 | 国产高清视频在线 | 午夜视频大全 | 日韩日韩日韩日韩日韩 | 精品少妇一区二区三区免费观 | 99久久婷婷国产综合精品青牛牛 | 黑帮大佬和我的三百六十五天 | 一本色道久久综合亚洲 | 激情综合网婷婷 | 一级黄色免费视频 | 久久久久成人精品无码中文字幕 | 深夜福利院 | 免费国产一区 | 黄色免费播放 | 91精品国产闺蜜国产在线闺蜜 | 暖暖成人免费视频 | 免费在线播放 | 免费啪视频 | 成年女人免费视频 | 99久久免费精品 | 在线观看网站 | 欧美大片免费高清观看 | 国产一区二区视频免费 | sao浪受的饥渴日常 91免费入口 | 日日噜夜夜噜 | 日本午夜视频在线观看 | 19韩国主播青草vip | 欧美国产视频 | 美女扒开内裤让男人捅 | 日美韩一区二区三区 | 寂寞人妻瑜伽被教练日 | 伊人超碰 | www.日韩视频 | 国产乱码精品一区二区三区亚洲人 | 极品粉嫩小仙女高潮喷水久久 | 强行无套内谢大学生初次 | 欧美大胆视频 | 日本免费高清 | 女性喷水视频 | 亚洲免费网站在线观看 | 波多野结衣1区2区3区 | 成人深夜小视频 | 成人性生交大片免费看vrv66 | 国产欧美网站 | 国产精品亚洲欧美 | 成年人毛片 | 欧美日韩成人一区二区三区 | 国产在线区 | 精品人伦一区二区三区蜜桃免费 | 欧美三级成人 | 青青草网站| 日本猛少妇色xxxxx猛叫 | 国产亚洲精品久久久久久久久动漫 | 男女污污网站 | 国产女人18毛片水真多1 | 国产乱人伦精品 | 欧美一区二区视频在线 | 亚洲色图av在线 | 在线看b | 国模无码国产精品视频 | 欧美精品一区三区 | 欧美色炮 | 久久成年人视频 | 尤物国产在线 | 日本高清一区二区视频 | 日本性网站 | 亚洲图片综合区 | 亚洲精品激情视频 | 无套中出丰满人妻无码 | 久久最新精品 | av加勒比在线 | 三级av网站 |