Catalan数
1.递推公式: f(n)= f(0)=1,f(1)=1;
2.组合公式1:f(n)=
3组合公式2:f(n)= -
应用举例:
1. 二叉树有n个结点,问:该二叉树能组成多少种不同的形态
2. 有n个A和n个B排成一排,从第一个位置开始到任何位置,B的个数不能超过A的个数,问有多少种排列方式。
n=1时:AB 1
n=2时:ABAB AABB 2
n=3时:AAABBBB AABABB AABBAB ABAABB ABABAB 5
3.乘法加括号。对于连乘:a1*a2*……*an,加了括号后可以改变它的运算顺序。问:有多少种不同的运算顺序?
将a1*a2*……*an,当做一颗二叉树来处理,将*逐个作为根,得:
f(0)*f(n-1)+f(1)*f(n-2)+f(2)*f(n-3)+…+f(i)*f(n-i-1)+….f(n-1)*f(0)
可以用组合公式2求解。
4.欧拉多边形分割问题
设有一个凸n边形,可用n-3条不相交的对角线将n边形分成n-2个互相没有重叠的三角形。
问:当给出凸n边形的边数n(n<=1000),共有多少种不同的分法。(需要用高精计算)
分析:按照某种顺序给凸边形的各个顶点编号为V1,V2 …… Vn。边V1Vn在最终的剖分中一定恰好属于某一个三角形V1VnVk,所以可以根据k进行分类。不难看出,三角形的左边是一个k边形,右边是一个n-k+1边形。根据乘法原理,包含三角形V1VnVk的方案数为:ff(k)*ff(n-k+1);
ff(n)=ff(2)*ff(n-1) + ff(3)*ff(n-2)+…+ff(n-1)*ff(2)
ff(3)=ff(2)=1 ff(4)=2 ff(5)=5
Catalan数 :f(n) = f(0)=1 f(1)=1; f(2)=2 ;f(3)=5;
凸边形的ff(3)对应Catalan数的f(1) . ff(n)=f(n-2);