关于Catalan(卡特兰)数的理解

卡特兰数的起源

Catalan数源自Euler对凸多边形通过不相交的对角线切分成三角形的不同切分方案数。
n+1个顶点(A1,A2...An+1)的凸多边形,取定多边形的一条边,不妨设为A1An+1,任意取凸多边形的一个顶点Ak+1(k=1,2...n-1),可以将凸多边形分为T1,R,T2三部分,如图

T1部分是由k+1个顶点组成的凸多边形,T2部分是由n+1-k个顶点组成的凸多边形。故设n+1个顶点的凸多边形总得剖分数是h(n),那么有
如下的递推公式:

这个递推关系就是卡特兰数所要求的,它的解也就是卡特兰数,不过这里面有个问题,就是当k=1或者n-1时,分不出三部分,只有两部分;令h(1) = 1; h(n-1) =1; 因为此时凸多边形被分为三角形A1A2An+1和另外一个凸多边形(或者是A1An+1An和另外一个凸多边形),这种切分的方案数等于剩余的那个凸多边形的切分方案,所以令h(1) = 1; h(n-1) = 1是合理的;对等式移向处理可得

而等式的右边可以通过对n个顶点的凸多边形的一个三角剖分问题来分析解答,如图:

上图n个顶点,其三角剖分的方案数为h(n-1);而等式右边的含义是选定B1,再任选B3,B4...Bn-1顶点连接成一条对角线,求其左边部分的方案数乘以右边部分的方案数的一个合集,上图是顶点B1,对角线取B1Bk+1的一种情形。
那么又与h(n-1)有着怎样的对应关系呢?是对n个顶点再取了一次合集,不过它与h(n-1)的关系呢,显然这里面是包含重复计数的:首先每条对角线对应两个顶点,所以中对每个顶点计算一次,每个顶点一共被计算了两次,所以要除2,其次每一种三角剖分的方案都对应n-3条对角线,即n-3条对角线合起来才构成一种剖分方案,所以还要除(n-3),这样就有了如下的等式:

代入公式中,化简可得



依据h(1)=1; h(2)=1;迭代可以得到h(n)的公式,即卡特兰数公式:


相信很多人看到过的公式跟这个可能会有所差异,有可能是这样的:


那么哪个才是正确的呢?其实一看也会觉得两个公式都是对的,只是在使用的时候,我们应该如何确定这个n的问题!
下面看有一个不穿越对角线问题,是卡特兰数的一个典型应用。

一位大城市的律师在他住所以北n个街区和以东n个街区处工作,每天她走2n个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?


一共14种走法,取n=4,套用第二个公式与结果一致70/5=14,那我们来看看套用第一个公式又意味着什么呢?20/4=5,5种方案,仔细看会发现,5种方案其实指的是不接触对角线的方案数!

下面我们来分析一下这个问题,从点(0,0)到点(4,4)不接触对角线的方案数是多少?由于不能接触对角线,所以第一步肯定是走点(1,0),并且最后一步肯定是从点(4,3)走到(4,4)。所以这种方案数与从点(1,0)到点(4,3)的方案数是一样的,这里我不想告诉你从(1,0)到(4,3)的方案数是走了一个边长为3的不穿越对角线的方案数,虽然确实是这样,但如果这么考虑问题,就成了一个循环了,一开始你怎么知道这个公式的,对吧!

回到原问题,从(1,0)到(4,3)不接触对角线的方案数有多少呢,首先我们知道总得走法是从6个中选3个的组合问题,共有20种,在20种方案中共有多少种是满足要求的呢,对于任意一条接触到对角线的方案,我们将其从(1,0)点开始到最后一个接触对角线的点结束,这之间的部分以对角线为轴做映射,再拼接上最后到点(4,3)的一段,可以得出一条从(0,1)到(4,3)的线路,也就是说每一条从(1,0)到(4,3)接触对角线的线路都有一条从(0,1)到(4,3)的线路与之对应,而每条从(0,1)到(4,3)的线路都一定穿越对角线,所以从(1,0)到(4,3)不接触对角线的方案数等于从总线路数中减去从(0,1)到(4,3)的方案数,这里也就是20 - 15 = 5;

就是我们之前看到的结果!从中我们也可以发现,对于接触对角线的问题其实等于将n + 1以后的不接触对焦心啊问题!当然卡特兰数问题博大精深,还有许多问题还没有搞明白。。。


你可能感兴趣的:(组合数学)