卡特兰数(Catalan Number)
来源:互联网 发布:热云数据 编辑:程序博客网 时间:2024/04/25 23:48
卡特兰数基本递推公式:
原理:h(0)=1, h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,h(6)=132,h(7)=429,h(8)=1430,h(9)=4862......
令h(0)=1,h(1)=1,卡特兰数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
例如:
h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2
h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1=5
变形递推关系:
递推式(2): h(n)=h(n-1)*(4*n-2)/(n+1);
递推关系的解为: h(n)=C(2n,n)/(n+1) (n=0,1,2,3,...)
递推关系的另类解为: h(n)=C(2n,n)-C(2n,n+1)(n=0,1,2,3,...)
卡特兰数的应用
(1)矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种方案?
思路:首先通过括号化,将P分成两个部分,然后分别对两个部分进行括号化。比如分成(a1)×(a2×a3.....×an),然后再对(a1)和(a2×a3.....×an)分别括号化;又如分成(a1×a2)×(a3.....×an),然后再对(a1×a2)和 (a3.....×an)括号化。
则 f(n) = f(1)*f(n-1) + f(2)*f(n-2) + f(3)*f(n-3) + f(n-1)*f(1)。
(2)有n个节点的二叉树共有多少种情形?
思路:h(n)表示这n个元素一共可以构成h(n)个不同的二叉树。如果选取a0作为根节 点,那么其左子树包含0个元素,左子树的数目是h(0);其右子树包含n-1个元素,右子树的数目是h(n-1);以a0为根节点的二叉树的数目是 h(0)*h(n-1)。如果选取a1作为根节点,那么其左子树包含1个元素a0,左子树的数目是h(1);其右子树包含h(n-2)个元素,右子树的数 目是h(n-2);以a1为根节点的二叉树的数目是h(1)*h(n-2)。
则h(n)=h(0)*h(n-1)+h(1)*h(n-2)+…+h(i)*h(n-1-i)+…+h(n-1)*h(0)。
(3)一个栈的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
(4)买票找零问题
(5)在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
(6)n*n的方格地图中,从一个角到另外一个角,不跨越对角线的路径数为h(n).
(7)圆桌周围有 2n个人,他们两两握手,但没有交叉的方案数为h(n)
(8)求一个凸多边形区域划分成三角形区域的方法数?
(9)10个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问有多少种排列方式?
- 卡特兰数 Catalan number
- 卡特兰数 Catalan Number
- 卡特兰数Catalan Number
- 卡特兰数Catalan Number
- 卡特兰数 Catalan number
- Catalan Number 卡特兰数
- Catalan Number (卡特兰数)
- 卡特兰数Catalan Number
- Catalan Number 卡特兰数
- 卡特兰数-Catalan number
- 卡特兰数(Catalan Number)
- Catalan Number 卡特兰数
- 卡特兰数 Catalan Number
- Catalan number卡特兰数
- 卡特兰数(Catalan number)
- 卡特兰数的应用 Catalan number
- Training:卡特兰数(Catalan number)
- 卡特兰数(Catalan)
- Codeforces Round #364 (Div. 2) A. Cards
- 安装Ubuntu 16.04后要做的事
- mogoose_mongodb_entity
- 有趣算法-a到z所有组合情况,期待斧正
- Spring之整合Apache CXF框架实现WebServices远程调用
- 卡特兰数(Catalan Number)
- JavaSE面试题【每天一整理】
- UVA - 202 Repeating Decimals
- Notepad++进行php开发所必需的插件【转】
- POJ 2975 Nim <Nim 博弈>
- Codeforces Round #364 (Div. 2) B. Cells Not Under Attack 标记数组
- Git从菜鸟到入门到放弃
- java-基础-异常
- Bestcoder-Aaronson