卡特兰数
卡特兰数(Catalan numbers, OEIS A000108 (opens new window))是一个非常重要的数列。其前10项为:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862
1
其递推公式为
C(N)=i=0∑N−1C(i)C(N−1−i)
其中边界条件为C(0)=1。
进一步地,可以求出其通项公式为
C(N)=N+1(N2N)=N!(N+1)!(2N)!
卡特兰数是一个非常神奇的序列,它与许多看似千差万别的问题都有着紧密的关联。这些问题包括:
- 有效的括号表达式
- 二叉搜索树的结构
- 有效的出栈序列
- 凸多边形的三角划分
- ……
卡特兰数的性质
奇偶性
卡特兰数Cn是奇数,当且仅当n=2k−1。
证明:
Cn=(n+1)!n!(2n)!=(n+1)!(2n−1)!!⋅2n
显然(2n−1)!!中不含2,所以要判断Cn的奇偶性,也就要判断(n+1)!含有多少个2。
这时,我们有:
T=⌊2n+1⌋+⌊4n+1⌋+⋯+⌊2kn+1⌋<n+1
也即T≤n。其中k=argmaxt(2t≤n+1)。
下面我们要说明n=2k−1是等号成立的充要条件。
充分性是显然的,将n=2k−1代入上式,可得:
T=2k−1+2k−2+⋯+1=2k−1=n
下面说明必要性。设n=2k+x,0≤x<2k−1,则n+1<2k+1,也即k=argmaxt(2t≤n+1)依然成立。
此时,原式左边变为:
l.h.s=2k−1+⌊2x+1⌋+⌊4x+1⌋+⋯+⌊2kx+1⌋
从而:
l.h.s<2k−1+x+1=2k+x=n
这样,我们就说明了原命题的充要性。进而可知,Cn为奇数,当且仅当n=2k−1。
质数
所有卡特兰数中只有两个质数,C2=2以及C3=5。
练习题
小贴士
本题要求给出具体的方案。如果只需要给出方案总数,那么结果即为卡特兰数。