【数学专题】 卡特兰数

来源:互联网 发布:数学分析教材 知乎 编辑:程序博客网 时间:2024/04/30 11:08
 给一个凸n边形,用n-3条不相交的对角线把它分成n-2个三角形,求不同的方法数目。


设答案为f(n)。 按照某种顺序给凸多边形的各个顶点编号为V1,V2, … , Vn。 既然分成的是
三角形,边V1Vn在最终的剖分中一定恰好属于某个三角形V1VnVk,所以可以根据k进行分
类。 不难看出,三角形V1VnVk的左边是一个k边形,右边是一个n-k+1边形(如图10-8a)所
示)。 根据乘法原理,包含三角形V1VnVk的方案数为f(k)f(n-k+1);根据加法原理有:
f(n)=f(2)f(n-1) + f(3)f(n-2) +…+ f(n-1)f(2)
边界是f(2)=f(3)=1。 不难算出从f(3)开始的前几项f值依次为:1251442132
4291430486216796

另一种思路是考虑V1连出的对角线。 对角线V1Vk把凸n边形分成两部分,一部分是k
形,另一部分是n-k+2边形(如图10-8b)所示)。 根据乘法原理,包含对角线V1Vk的凸多
边形有f(k)f(n-k+2)个。 根据对称性,考虑从V2V3Vn出发的对角线也会有同样的结
果,因此一共有n(f(3)f(n-1)+f(4)f(n-2)+…+f(n-1)f(3))个部分。


但这并不是正确答案,因为同一个剖分被重复计算了多次!不过这次不必去消除重复
了,因为这些重复很有规律:每个方案恰好被计算了2n-6——n-3条对角线,而考虑每
条对角线的每个端点时均计算了一次。 这样,得到了f(n)的第2个递推式:
f(n) = (f(3)(n-1)+f(4)f(n-2)+…+f(n-1)f(3))×n/(2n-6)
它和第一个递推式有几分相似,但又不同。 把n+1代入第1个递推式后得到:
f(n+1)=f(2)f(n) + f(3)f(n-1) + f(4)f(n-2) +…+ f(n-1)f(3)+ f(n)f(2)

红色部分根据第2个递推式,它等于f(n)•(2n-6)/n,把它和f(2)=1一起代入上
式得

f(n+1) = (4n-6)*f(n)/n


令h(0)=1,h(1)=1,catalan数满足递推式[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,...)
递推关系的另类解为:
h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)


推荐http://blog.sina.com.cn/s/blog_6aefe4250101asv5.html



0 0
原创粉丝点击