卡特兰数

来源:互联网 发布:淘宝网淘宝商城 编辑:程序博客网 时间:2024/04/28 23:03

卡特兰数———摘自百度百科

卡特兰数又称卡塔兰数,以比利时数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。

前几项为: 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, ...
        
其递推关系为:

2.h(n)=h(n-1)*(4*n-2)/(n+1)

3.h(n)=C(2n,n)/(n+1) (n=0,1,2,...)

4.h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)


在算法中的典型应用:

1.括号问题

例:给定一个非负整数n,生成n对括号的所有合法排列(相当于矩阵连乘问题)。

括号的合法排列的规则:在每个位置,之前的左括号的数量均大于等于右括号数量。

其括号化的数目满足Catalan数。

2.出栈次序

一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列
类似问题:买票找零
3.凸多边形三角划分
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)。比如当n=6时,f(6)=14。
类似问题
一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
4.给定节点组成二叉搜索树
给定N个节点,能构成多少种不同的二叉搜索树?