[数学]卡特兰数

前言

卡特兰数是初赛中比较重要的数学知识,所以写篇博客总结一下。

定义

CnC_n 表示从 (0,0)(0,0) 出发,每次只能向右或向上走 1 步,且 xx 轴的值始终不小于 yy 轴的值,到 (n,n)(n,n)的方案种数。

通项+证明

Cn=1n+1(2nn)C_n=\dfrac{1}{n+1}\left(\begin{matrix}2n \\ n\end{matrix}\right)

证明:

不考虑越过线的情况的话显然有 (2nn)\left(\begin{matrix}2n \\ n\end{matrix}\right) 种情况。

考虑非法的情况,令直线 l:y=x+1l:y=x+1,那么每一个非法的方案都与 ll 有至少 1 个交点。

对于每一个方案,我们取 xx 值最小且在 ll 上的点记为 p(x1,y1)p(x_1,y_1),将 x>x1,yxx>x_1,y\leq x 的点沿 ll 对称,那么就变为从 (0,0)(0,0)(n1,n+1)(n-1,n+1) 的路径了,显然是一个映射,所以有 (2nn1)\left(\begin{matrix}2n \\ {n-1}\end{matrix}\right) 种非法方案。

所以 Cn=(2nn)(2nn1)C_n=\left(\begin{matrix}2n \\ n\end{matrix}\right) - \left(\begin{matrix}2n \\ {n-1}\end{matrix}\right)

化简

Cn=(2nn)(2nn1)=(2n)!n!n!(2n)!(n1)!(n+1)!=(2n)![(n+1)nn!(n+1)!]=1n+1(2nn)\begin{aligned} C_n=&\left(\begin{matrix}2n \\ n\end{matrix}\right) - \left(\begin{matrix}2n \\ {n-1}\end{matrix}\right) \\ =&\dfrac{(2n)!}{n!\cdot n!}-\dfrac{(2n)!}{(n-1)!\cdot (n+1)!}\\ =&(2n)!\cdot\bigg[\dfrac{(n+1)-n}{n!\cdot (n+1)!}\bigg]\\ =&\dfrac{1}{n+1}\left(\begin{matrix}2n \\ n\end{matrix}\right) \end{aligned}

应用

  1. nn 对括号的合法配对方案书
  2. nn 个节点的二叉树的形态数
  3. n+1n+1 个叶子(nn 个非叶节点)的满二叉树的形态数, 走到左儿子 +1+1,走到 右儿子 1-1,类似于括号匹配(大致同2)
  4. nn 个数入栈后出栈的排列总数
  5. 对凸 n+2n+2 边形进行不同的三角形分割的方案数(分割线断点仅为顶点,且分割线仅在顶点上相交)
  6. nn 层的阶梯切割为 nn 个矩形的切法数

转自 https://www.cnblogs.com/linzhengmin/p/11298140.html


[数学]卡特兰数
https://sobaliuziao.github.io/2021/09/16/post/7b9cfcc0.html
作者
Egg_laying_master
发布于
2021年9月16日
许可协议