【interview】卡特兰数

涉及卡特兰数的题目列举,也是组合数学中一些例子:

详解链接 https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0

1. n个节点的二叉树有多少种形态?

  Cn表示有2n+1个节点组成不同构满二叉树(full binary tree)的方案数。

  下图中,n等于3,圆形表示内部节点,月牙形表示外部节点。本质同上。

        

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

  • Cn表示所有包含n组括号的合法运算式的个数:((())) ()(()) ()()() (())() (()()) 

3. 一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列? 
4. 有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈) 
5. 将一个凸多边形区域分成三角形区域的方法数? 

  • Cn表示通过连结顶点而将n + 2边的凸多边形分成三角形的方法个数。下图中为n = 4的情况:
        Catalan-Hexagons-example.svg


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

  • Cn表示所有在n × n格点中不越过对角线的单调路径的个数。一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右。计算这种路径的个数等价于计算Dyck word的个数:X代表“向右”,Y代表“向上”。下图为n = 4的情况:
Catalan number 4x4 grid example.svg

8. Cn表示长度2n的dyck word的个数。Dyck word是一个有n个X和n个Y组成的字串,且所有的前缀字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck word: XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY

  证明:

  令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的二进制数。反之亦然(相似的思路证明两者一一对应)。

从而C_n = {2n \choose n} - {2n \choose n + 1} = \frac{1}{n+1}{2n \choose n}。证毕。

9.

  • Cn表示用n个长方形填充一个高度为n的阶梯状图形的方法个数。下图为n = 4的情况:
Catalan stairsteps 4.svg

什么是卡特兰数?

f(n)=f(n-1)f(0)+f(n-2)f(1)+……….+f(1)f(n-2)+f(0)f(n-1) 
该数列称为卡特兰数(Catalan数),该递推关系的解为: 

参考博文:

https://blog.csdn.net/adminabcd/article/details/46672759

猜你喜欢

转载自www.cnblogs.com/sherry-yang/p/10198582.html