1.Catalan数介绍
令h(0)=1,h(1)=1,catalan数满足递推式:
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
另类递推式:
h(n)=h(n-1)*(4*n-2)/(n+1);
递推关系的解为:
h(n)=C(2n,n)/(n+1) (n=1,2,3,...)
递推关系的另类解为:h(n)=c(2n,n)-c(2n,n+1)(n=1,2,3,...) ------由此递推式可知卡特兰数为自然数
2.Catalan数应用
①括号化问题
P=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)
f(n)=h(n-1)
f(1)*f(n-1)表示分成(a1)×(a2×a3.....×an)两部分,然后分别括号化
②出栈次序问题
一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
f(2n) = f(0)*f(2n-2) + f(2)*f(2n-4) +...+ f(2n-2)*f(0)
分界线是入栈后马上出栈的元素
f(2n)=h(n)
类似问题 (元素总个数是偶数,元素成对出现)
- 有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?
- 12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
- 一位大城市的律师在他住所以北n个街区和以东n个街区处工作,每天她走2n个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
- 在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
以其中某一人为观察点 f(2n)=f(0)*f(2n-2)+f(2)*f(2n-4)+...+f(2n-2)*f(0) f(2n)=h(n)
③凸多边形划分成三角形的方法数
f(n)=f(2)*f(n-1)+f(3)*f(n-2)+...+f(n-1)*f(2)
f(n)=h(n-2)
④拥有 n+1 个叶子节点的二叉树的数量为h(n).例如 4个叶子节点的所有二叉树形态:
![](https://i-blog.csdnimg.cn/blog_migrate/18de471a4e5f5bb1b44ba0d3a652d723.png)