Fork me on GitHub

卡特兰数的应用

  

卡特兰数 h(n)=C(2n,n)/(n+1) (n=1,2,3,...)

  前几项为 (OEIS中的数列A000108): 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...

1,

括号化

  矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)


2,

出栈次序

  一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

3,

凸多边形三角剖分

  求将一个凸多边形区域分成三角形区域的方法数。
  类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
  类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?

4,

给定节点组成二叉树

  给定N个节点,能构成多少种不同的二叉树
  (能构成h(N)个)

5,

买票找零


在一场激烈的足球比赛开始之前,售票工作正在紧张的进行中。每张球票为50元。现有2n个人在买票。

其中n个人手持50元的钞票,另外n个人手持100元的钞票。假设开始售票的时,售票处没有零钱。

问这2n个人有多少种排队方式,不使售票处出现找不到零钱的局面?

 

不难看出,从队首开始,任何时候,只要手持100元的球迷总比手持50元的球迷少,肯定可以把钱找开。

此时,我们联想到括号的问题。50元相当于左括号,100元相当于右括号

第0个一定是左括号,假设第0个和第k个括号匹配。那么k一定是奇数。那么第1个符号到第k-1符号一定匹配。

第k+1个,到第2n-1个符号一定匹配。

假设我们设定f(2n)代表所有的合法序列的总数。

那么f(2n)=Sum(f(2i)*f(2n-2i-2)) i=0,1,........n-1;

所以最终f(2n)=1/n+1  *  C(2*n , n)


posted @ 2012-04-08 22:37  浪飞-louffy  阅读(373)  评论(0编辑  收藏  举报