卡特兰数(简单说说)
Posted Jozky86
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡特兰数(简单说说)相关的知识,希望对你有一定的参考价值。
参考题解:
【算法】震惊!!!史上最详细的卡特兰数浅谈!!!
卡特兰数(好像很有用的说)
介绍
卡特兰数是组合数学中一种著名数列,其前几项为:
1, 2, 5, 14, 42,
132, 429, 1430, 4862, 16796,
58786, 208012, 742900, 2674440, 9694845,
35357670, 129644790, 477638700, 1767263190,
6564120420, 24466267020, 91482563640, 343059613650, 1289904147324,
通项式为:
f
(
n
)
=
C
2
n
n
n
+
1
=
(
2
n
)
!
(
n
+
1
)
!
n
!
f(n)=\\frac{C_{2n}^{n}}{n+1}=\\frac{(2n)!}{(n+1)!n!}
f(n)=n+1C2nn=(n+1)!n!(2n)!
递推式为:
f
(
n
)
=
∑
i
=
0
n
−
1
f
(
i
)
∗
f
(
n
−
i
−
1
)
f(n)=\\sum_{i=0}^{n-1}f(i)*f(n-i-1)
f(n)=∑i=0n−1f(i)∗f(n−i−1)
常用的是通项式变形:
f
(
n
)
=
C
2
n
n
−
C
2
n
n
−
1
f(n)=C_{2n}^{n}-C_{2n}^{n-1}
f(n)=C2nn−C2nn−1
经典问题:
一.01序列问题
给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数,
以下为长度为6的序列:
111000 101100 101010 110010 110100
括号问题
矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)
出栈次序问题
一个栈(无穷大)的进栈序列为1,2,3,…n,有多少个不同的出栈序列?
多边形划分为三角形问题
将一个凸多边形区域分成三角形区域的方法数?
给顶节点组成二叉树问题
给定N个节点,能构成多少种形状不同的二叉树?
先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是h(0)*h(n-1) + h(2)*h(n-2) +…+ h(n-1)h(0)=h(n)(能构成h(N)个)
例题:
洛谷1641 生成字符串
Loj10238网格
洛谷P2532 树屋阶梯
洛谷P3200 有趣的数列
以上是关于卡特兰数(简单说说)的主要内容,如果未能解决你的问题,请参考以下文章