卡特兰数(Catalan)

Catalan数列

与斐波那契数列类似,并没有什么特殊的含义,只是用来解决某些问题的模型。

形如:\(1、1、2、5、14、42、132……\)

公式

\[Cat_n=\sum\limits_{i=1}^{n}Cat_{i-1}Cat_{n-i} \\ Cat_n=\frac{4n-2}{n+1}Cat_{n-1} \\ Cat_n=C_{2n}^{n}-C_{2n}^{n-1}=\frac{C_{2n}^{n}}{n+1} \\ \]

例题与解释

1.经典的网格路径问题

\((0, 0)\)走到\((n, m)\),只能向上或向右走,且不穿过\(y=x\)这条线的方案数。显然随便走的话方案数就是\(C_{n+m}^{n}\)(一共走\(n+m\)步,其中有\(n\)步向右走)。考虑每一条不合法路径,也就是穿过了\(y=x\),即触碰到了\(y=x+1\),将第一次触碰到\(y=x+1\)的位置记作\(d\),那么把\(d\)之后的路径沿\(y=x+1\)对称,就得到了一条从\((0,0)\)\((m-1,n+1)\)的路径。可以发现每一条不合法路径都唯一对应一条从\((0,0)\)\((m-1,n+1)\)的路径,这是一个双射关系,方案数为\(C_{n+m}^{n+1}\),最后答案为\(C_{n+m}^{n}-C_{n+m}^{n+1}\)。特别的,当\(n=m\)时,就是卡特兰数。

2.1、-1序列

\(n\)\(1\)\(n\)\(-1\)排列,使得任意位置的前缀和大于等于\(0\)。对于不合法的方案建立双射关系:一定存在一个位置前缀和为\(-1\),假设前面有\(p\)\(1\)\(p+1\)\(-1\),那么后面有\(n-p\)\(1\)\(n-p-1\)\(-1\),将\(1、-1\)取反,此时后面有\(n-p-1\)\(-1\)\(n-p\)\(1\),总体就是有\(n-1\)\(1\)\(n+1\)\(-1\)组成的排列。同理,我们可以把此反向映射回去,得到双射关系。方案数也就是\(C_{2n}^{n}-C_{2n}^{n-1}\)

3.括号序列

左括号的数量始终大于等于右括号,即合法的括号序列。把左右括号看做\(1、-1\),同上。

4.进出栈问题

\(1……N\)依次入栈,出栈顺序的方案数。考虑\(1\)的顺序:
1.\(1\)入栈;
2.\(2……k\)按照某种次序出栈;
3.\(1\)出栈;
4.\(k+1……n\)按照某种次序出栈。
写成递推式就表示为\(\sum\limits_{i=1}^{n}f_{i-1}f_{n-i}\),就是卡特兰数。

5.阶梯的矩形划分(树屋阶梯)。

image

一个阶梯被若干个矩形划分的方案数。
发现\(n\)个角不可能处于同一个矩形,那么枚举\(n\)个角哪一个与左下角的方块在一个矩形内,那么上方还剩下\(i-1\)个角,下方还剩下\(n-i\)个角,则递推式如上。

6.二叉树的构成问题(凸多边形的三角划分)

枚举左子树的大小,得到递推式\(f_n=f_0f_{n-1}+f_1f_{n-2}……f_{n-1}f_0\)

7.不相交弦

在一个圆上有\(2n\)个点,两两配对,所得的弦彼此不相交,在圆上任选两个点连接,把圆分成两部分,左侧\(2(i-1)\)个点,右侧\(2(n-i)\)个点,得到递推式。

posted @ 2022-10-10 21:19  sandom  阅读(272)  评论(0编辑  收藏  举报