Catalan 数
Posted doublety
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Catalan 数相关的知识,希望对你有一定的参考价值。
(Catalan) 数列
? 给定(n)个(0)和(n)个(1),它们按照某种顺序排成长度为(2n)的序列,满足任意前缀中(0)的个数都不少于(1)的个数的序列的数量即为(Catalan)数列。
证明:
? 令(n)个(0)和(n)个(0)随意排成一个长度为(2n)的序列(s),若(s)不满足任意前缀和中(0)的个数不少于(1)的个数,则存在一个最小的位置(2p+1),使得(s)[(1,2p+1)]中有(p)个(0),(p+1)个(1)。而把(s)[(2p+2),(2n) ]中的数都取反,包含(n-p-1)个(0)和(n-p)个(1)。于是,我们得到了(n-1)个(0)和(n+1)个(1)排成的序列。
? 同理,令(n-1)个(0)和(n+1)个(1)随意排成一个长度为(2n)的序列(B)。也必定存在一个最小的位置(2p+1),使得(s[1,2p+1])中有(p)个(0),(p+1)个(1),把后面的序列取反,就得到了(n)个(0),(n)个(1)组成的存在一个前缀(0)比(1)多的序列。
? 所以,以下两种序列的数量其实是一样的:
- 有(n)个(0),(n)个(1)组成的存在一个前缀(0)比(1)多的序列。
- 由(n-1)个0,(n+1)个(1)组成的序列。
所以,用所有情况减去不合法的情况就得到了卡特兰数。
推论
? 以下问题都与(Catalan)数有关
1. 括号匹配的合法括号序列数量
2. 合法出栈序列数量
3. $n$ 个节点构成的不同二叉树的数量
4. 平面直角坐标系中,每一步只能向上或向右走,从$(0,0)$到$(n,n)$并且除了两个端点外不接触直线$y=x$的路线数量为$2Cat_{n-1}$。
以上是关于Catalan 数的主要内容,如果未能解决你的问题,请参考以下文章