转载:http://blog.youkuaiyun.com/hardbrave/article/details/6713915
什么是Catalan数
说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式为Cn = C(2n, n)/(n+1) n>=0。我们从中取出的Cn就叫做第n个Catalan数,前几个Catalan数为:1, 1, 2, 5, 14 ....,乍看之下没啥特别的,但是Catalan数却是许多计数问题的最终形式。
Catalan数的应用
Catalan数主要有四类应用:
1)括号化问题
1】n对括号有多少种匹配方式?
2】n+1个数相乘,有多少种乘法顺序?
2)出栈次序问题
1】n个数有多少种不同的进出栈顺序?
2】n辆火车有多少种不同进出站顺序?
3)将多边形划分为三角形问题
1】n+2条边的凸多边形,能划分成多少个三角形?
2】n层阶梯划分为n个矩形,一共有多少种分法?
4)其它问题
1】n个节点构成的二叉树,共有多少种情形?
1.1】拥有n个非叶节点(或n+1个叶节点)的满二叉树的数量?
2】长度为2n的Dyck words的数量。(Dyck words是由n个X和n个Y组成的字符串,并且从左往右数,Y的数量不超过X)
2.1】2n个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
解:12个人先从矮到高排序,然后每个人被选到第一排或者第二排,如果要满足题意,当且仅当每挑选完一次之后,第二排中的人数不多于第一排中的人数。
2.2】在一个2*n的格子中填入1到2n这些数值使得每个格子内的数值都比其右边和上边的所有数值都小的情况数?
2.3】有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?
3】圆桌周围有2n个人,他们两两握手,但没有交叉的方案数。
3.1】在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数。
4】对于一个n*n的正方形网格,每次我们能向右或者向上移动一格,求从左下角到右上角的所有在副对角线右下方的路径总数。
解:我们把一条水平边标记为+1,垂直边标记为-1,那么就组成一个n个+1和n个-1的序列,我们所要保证的是前k步中水平边的个数不小于垂直边的个数。
4.1】一位大城市的律师在他住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
5】集合{1, 2, ... , 2n}的不交叉划分的数目。
解:我们将集合里面的元素两两分为一子集,共n个,每个子集中较小的数用左括号代替,较大的用右括号代替,那么带入原来的1至2n的序列中就形成了合法括号问题了。
参考:
http://gpww.blog.163.com/blog/static/118268164200996103932731/
http://www.mathoe.com/dispbbs.asp?boardid=89&ID=34522
http://jackchen0227.iteye.com/blog/1104778
http://blog.youkuaiyun.com/xiaohuan1991/article/details/6397861