卡特兰数
来源:互联网 发布:医院网络客服工作职责 编辑:程序博客网 时间:2024/04/29 03:28
卡特兰数是组合数学中一个经常在各种计数问题中出现的数列,公式如下:
①
数列的前几项:1,1,2,5,14,42,132,429,1430,4862……
性质:
卡特兰数的公式可以表达成下面形式:
②
也可以用递推公式来表示:
③
应用:
1、大家最熟悉的应该是用Cn来表示将n+2边的凸多边形切割成三角形的方法个数,当n=4时:
2、Cn表示长度2n的dyck word的个数。Dyck word是一个有n个X和n个Y组成的字串,且所有的前缀字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck words:
XXXYYY,XYXXYY,XYXYXY,XXYYXY,XXYXYY
其实这就是一种括号化问题:
P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?
将上例的X换成左括号,Y换成右括号,Cn表示所有包含n组括号的合法运算式的个数:
((())),()(()),()()(),(())(),(()())
这种Dyck word字符串还可以运用在棋盘上,例如用Cn表示所有在n × n格点中不越过对角线的单调路径的个数。一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右。计算这种路径的个数等价于计算Dyck word的个数:X代表“向右”,Y代表“向上”。下图为n = 4的情况:
更详细的,可以参考这道题:sicily 13062
3、Cn表示有n个节点组成不同构二叉树的方案数,n=3时:
4、出栈次序问题:一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
类似:
(1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
(2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。
总结:
所有的问题虽然看上去不一样 ,但是本质是一样的,都是卡特兰数的应用。实际中我们就是要看透问题的本质,才可以快速解决问题。
参考:
维基百科,组合数学
- 卡特兰数,高精度卡特兰数
- 卡特兰数
- 卡特兰数(Catalan)
- 卡特兰数
- 卡特兰数
- 卡特兰数 大数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 视频播放器MPMoviePlayerController,MPMoviePlayerViewController
- Linux下导出Mysql数据库数据的方法
- js中SetInterval与setTimeout用法
- App Store审核指南中文版(2014.9.10更新)
- 【凯子哥带你夯实应用层】都说“知乎”逼格高,我们来实现“知乎”回答详情页动画效果
- 卡特兰数
- 【OpenSSL】Generation of RSA key pair
- android 编程 应用代码
- iOS报错libc++abi.dylib handler threw exception
- oracle修改语句汇总
- 运行eclipse出现no java virtual machine was found
- cubieboard源码编译问题汇总
- Qt在Windows下的三种编程环境搭建
- 关于漏洞