#b站#
以走网格为例,从格点(0,0)走到格点(n,n),只能向右或向上走,并且不能越过对角线的路径的条数,就是卡特兰数,记为Hn。
通项公式
(1)
(2)
(3)
证明原理示意图:
首先证明(1)式,先求路径总数,由(0,0)到(n,n)需要在2n次移动中选n次向右移动,也即需要
接下来我们需要求到不满足我们限制条件的路径数目,二者之差即为所求。
非法路径,根据设定,也即是我们穿过对角线的路径,根据示意图我们可以发现,非法路径必然和y=x+1这条直线有一交点,我们设为(a,a+1)点,由示意图2我们将非法路径(a,a+1)点之后的部分根据y=x+1对称过来,(n,n)点根据y=x+1的对称点为(n-1,n+1)。这样,所有的非法路径对称后都唯一对应一条从(0,0)到(n-1,n+1)的路径,这样就可以得出非法路径的数目为,从而我们就可以计算出合法路径的总数目为
(2)式证明如下:
下面是卡特兰数的一些应用:
1.一个有n个0和n个1组成的字串,且所有的前缀字串皆满足1的个数不超过0的个数。这样的字串个数有多少?
2.包含n组括号的合法运算式的个数有多少?
3.一个栈的进栈序列为1,2,3,… ,n,有多少个不同的出栈序列?
5.在圆上选择2n个点,将这些点成对连接起来使得所得到的n条弦不相4. n个结点可构造多少个不同的二叉树?