Catalan数列
Catalan公式:
f(n)=f(1)*f(n-1)+f(2)*f(n-2)+f(3)*f(n-3)+......+f(n-1)*f(1)
前16个:1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 (在处理数据的过程中应该用到高精度)
看下面例题:
将一个凸多边形区域分成三角形区域的方法数? 令hn表示具有n+1条边的凸多边形区域分成三角形的方法数。同时令h1=1,则hn满足递推关系 hn=h1hn-1+h2hn-2+...+hn-1h1(n>=2) 该递推关系的解为hn=c(2n-2,n-1)/n (n=1,2,3,...) 其对应的序列为1,1,2,5,14,42,132,....从第二项开始分别是三边形,四边形,...的分法数,即k边形分成三角形 的方法数为hk=c(2k-4,k-2)/(k-1)(k>=3)
Cn=c(2k,k)/(k+1) 序列1,1,2,5,14,42,132,....叫Catalan数列。 下列问题都是Catalan数列: 1.有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院 无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?
2.一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果他从不穿
越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
3.在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数? 4.n个结点可够造多少个不同的二叉树? 5.一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列? 附生成程序
|