原文地址(跪gty orz):http://gaotianyu1350.gitcafe.io/2015/03/08/%E6%95%B0%E5%88%97/
//ps:已修正原文部分格式问题= =
卡特兰数
前20项(从0开始)
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190
公式
- 递推式 令$C_0=1$,卡特兰数满足递推式:
$$ C_n=\sum_{i=0}^{i<n}C_iC_{n-i-1}, n \ge 1 $$
也满足:
$$ C_n=\frac{2(2n-1)}{n+1}C_{n-1} $$ - 一般公式
$$
C_n=\frac{1}{n+1}\binom{2n}{n}=\frac{(2n)!}{(n+1)!n!}
$$ - 另一种公式
$$ C_n=\binom{2n}{n}-\binom{2n}{n+1},n\ge 1 $$
增长
$$ C_n\sim \frac{4^n}{n^{3/2}\sqrt \pi} $$
应用
- 括号匹配 $n$对括号匹配的方案为$C_n$。分析同出栈序列
- 出栈序列 一个栈的进展序列为$1,2,3,…,n$,有多少个不同的出栈序列?有$C_n$种。
分析:设$n$个数字的时候的方案数为$f_n$。令最后一个出栈的数字为$k$,对于这一种情况,方案为$f_{k-1}f_{n-k}$。如果把所有$k$都枚举一遍再加起来,就会发现和卡特兰数的递推公式是一样的。 - 凸多边形三角划分 在一个凸多边形中(边数为$n$),通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。方案数为$C_{n-2}$。
分析:设边数为$n$的方案数为$f_n$。对点从$1$到$n$标号,然后选择一个点$k$($1<k<n$),$1,k,n$三个点构成一个三角形,这个三角形把多边形分成了两个部分——一个部分有$k$个点,一个部分有$n-k+1$,方案数为$f_kf_{n-k+1}$。发现$f_n$和$C_{n-2}$是相同的。 - 二叉树构成 给定$n$个节点,能构成多少种不同的二叉树?$C_n$个。
- 所有在$n \times n$格点中不越过对角线的单调路径的个数为$C_n$。(可以把向上走理解为左括号,向右走理解为右括号,不能越过对角线理解为括号序列合法)。
- 在圆上选择$2n$个点,将这些点成对连接起来使得所得到的$n$条线段不相交的方案数为$C_n$(和括号匹配是一个意思)。
更多例子见Wiki百科-卡特兰数
扩展问题
- $n$个左括号$m$个右括号($n>m$),合法的括号序列个数,任意时刻必须保证左括号剩余的个数大于$0$。(从$(0,0)$走到$(n,m)$不穿过对角线$x=y$)
分两种情况:
①走$(1,0)$,一定不合法。方案数$\binom{n+m-1}{m-1}$。
②走$(0,1)$,有两种情况:A.合法。B.不合法。其中不合法的方案,将它穿过对角线之前的路线关于对角线翻折,一定能和某一个①中的方案重合,所以方案数为$\binom{n+m-1}{m-1}$。
总方案数为$\binom{n+m}{m}-2\binom{n+m-1}{m-1}$。 - $n$个左括号$m$个右括号($n>m$),合法的括号序列个数。(从$(0,0)$走到$(n,m)$不穿过对角线$x=y$(可以经过对角线))
将上面那个问题中的$n$加上一就可以了。
总方案数$ \binom{n+m+1}{m}-2\binom{n+m}{m-1}$
斯特林数(一)
定义
$s(n,k)$或$\left[ n,k \right]$的绝对值表示$n$个人分成$k$组,每组内再进行环上排列(也就是说通过旋转一样的方案算作相同方案)的方案数。
递推
$s(n,0)=0,s(1,1)=1$,有递推关系
$$ \left|s(n,k)\right|=\left|s(n-1,k-1)\right|+(n-1)\left|s(n-1,k)\right| $$
关于符号:
$$ s(n,k)=(-1)^{n+k}\left|s(n,k)\right| $$
特殊情况:
- $ \left|s(n,1)\right| = (n-1)! $
- $ s(n,n-1)=-\binom{n}{2} $
斯特林数(二)
定义
$S(n,k)$或$\{ n,k \}$表示$n$个人分成$k$组的方案数(每个组必须有人)。
递推
$S(n,n)=S(n,1)=1$,有递推关系:
$$ S(n,k)=S(n-1,k-1)+kS(n-1,k) $$
几个公式:
- $ S(n,n-1)=\binom{n}{2}=n(n-1)/2 $
- $ S(n,2)=2^{n-1}-1 $
- $ S(n,k)=\frac{1}{k!}\sum_{j=1}^k(-1)^{k-j}\binom{k}{j}j^n $
- $ B_n=\sum_{k=1}^nS(n,k) $($B_n$为贝尔数)
更多见Wiki百科-斯特灵数
贝尔数
定义
$B_n$为$n$个元素的集合划分方案数。($B_0=1$)
前7项(从0开始)
1,1,2,5,15,52,203……
递推
$$ B_n=\sum_{k=0}^{n-1}\binom{n-1}{k}B_k $$
和斯特林数(二)的关系:
$$ B_n=\sum_{i=1}^{n}S(n,i) $$
贝尔三角形
- 第一行第一项是$1$。
- 对于$n>1$,第$n$行第$1$项等于$n-1$行的最后一项。
- 对于$m,n>1$,第$n$行第$m$项等于它左边和左上方的两个数的和。
- 每行首项是贝尔数。
$$
\begin{matrix}
&1,\
&1, &2,\
&2, &3, &5,\
&5, &7, &10, &15,\
&15, &20, &27, &37, &52 \
\end{matrix}
$$
更多见Wiki百科-贝尔数