Catalan 数的应用
来源:互联网 发布:linux mysqldump命令 编辑:程序博客网 时间:2024/04/29 18:46
Wikipedia上的Catalan numbers:
In combinatorial mathematics, the Catalan numbers form a sequence of natural numbers that occur in various counting problems, often involving recursively defined objects. They are named for the Belgian mathematician Eugène Charles Catalan (1814–1894).
The nth Catalan number is given directly in terms of binomial coefficients by
The first Catalan numbers (sequence A000108 in OEIS) for n = 0, 1, 2, 3, … are
- 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,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(Cn-1 种)
多重幂计数问题: 设给定n个变量x1,x2…,xn。将这些变量依序作底和各层幂,可得n重幂如下
这里将上述n 重幂看作是不确定的,当在其中加入适当的括号后,才能成为一个确定的n重幂。不同的加括号方式导致不同的n重幂。例如,当n=4 时,全部4重幂有5个。http://blog.csdn.net/fisher_jiang/archive/2008/05/26/2483290.aspx
2.出栈次序问题。
一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列? 可参考《栈的计数》问题的算法分析 之算法三。
类似:有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
3.将多边行划分为三角形问题。
在一个n个顶点的凸多边形中,插入对角线(对角线两两不相交)将多边形划分为三角形。
总共需要n-3条弦,将多边形切成n-2个小三角形。
设凸多边形n个顶点顺序为p[1],p[2],……,p[n],
它有n条边: <p[1]p[2]>, <p[2]p[3]>,……, <p[n-1]p[n]>, <p[n]p[1]>。
按顶点编号顺序,将其中的n-1条边写成下面这个序列:
<p[1]p[2]> <p[2]p[3]> <p[3]p[4]>…… <p[n-1]p[n]>,
则多边形的三角划分和这个序列的全括号化存在着一一对应的关系。
以五边形为例:
选定多边形的一条边 <p[1]p[n]>为基边,无论怎样分区域,基边总能在分成的三角形区域中的一个中。
该三角形区域又将凸多边形区域分成三个部分
令函数f(n)来表示n+1个顶点的多边形划分出的小三角数量,并规定f(1)=1,
根据划分点的选取过程可以看出,递推关系满足下列式子
f(n)=f(1)*f(n-1)+f(2)*f(n-2)+……+f(n-1)*f(1),这里n>=2
用递归的法子模拟上述过程,就能够输出全部的划分。
f(n)=C(2n-2,n-1)/n
类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数(有2n个人围着圆桌就坐,手臂不相及的握手的方法数是Catalan数Cn)
4.节点数为n的二叉树的个数为Cn,此问题等价于已知一棵树(n个节点)的前序遍历的顺序是1,2,3,4,。。。n, 中序遍历的个数。
- Catalan 数的应用
- Catalan数的一些应用
- Catalan数的应用场景
- Catalan数的分析和应用
- 【转载】Catalan数的分析和应用
- catalan数的应用 变形 HDU1133
- Catalan数的应用与代码实现
- 卡特兰数的应用 Catalan number
- HDU - 5673(catalan数的应用)
- Catalan数应用
- catalan数应用
- Catalan数应用
- catalan数及其应用
- Catalan数应用
- Catalan数应用
- Catalan数计算及应用
- Catalan数计算及应用
- Catalan数计算及应用
- BBSMicrosoft VBScript 运行时错误 错误 '800a01a8' 缺少对象:这是什么错误
- AJAX+ASP.NET无刷新二级联动省市下拉列表
- Java相关配置
- 如何开发类视于CTrackerRect的拖拉框进行图像的调整
- ibatis 配置文件
- Catalan 数的应用
- 十进制12345在32位计算机中的十六进制表示方法
- 关于VS2005中GridView的自定义分页,单选、多选、排序、自增列的简单应用
- 如何优雅地关闭一个socket
- 关于DirectUI界面技术的误解
- struts框架jsp文件生成html源碼
- 用Java实现几种常见的排序算法
- 通过串口实时接收短消息
- COOKIES的使用