标签:分割 line pos inline 多边形 序列 一起 display 常用
??Catalan数是组合数学中在经常出现在计数问题中的数列,前几项为:
??\(1,2 , 5 ,14,42,132,429,1430,4862,16796,58786,208012,742900,……\)
??Catalan数有\(4\)个常用的求解公式
??\(①\)递归公式1
\[
f(n)=\sum_{i=1}^{n-1}f(i)*f(n-i-1)
\]
??\(②\)递归公式2
\[
f(n)=\frac{f(n-1)*(4*n-2)}{n+1}
\]
??\(③\)组合公式1
\[
f(n)=\frac{C_{2n}^n}{n+1}
\]
??\(④\)组合公式2
\[
f(n)=C_{2n}^n-C_{2n}^{n-1}
\]
??已知一个二叉树有n个节点,求该二叉树有多少种不同的形态。
??定一个点为根,假设左子树有\(i\)个节点,右子树有\((n-i-1)\)个节点,那么根据乘法原理把他乘起来即可。我们设f(n)为n个节点的不同的二叉树形态个数,那么答案为:
\[
f(n)=\sum_{i=1}^{n-1}f(i)*f(n-i-1)
\]
??这显然就是Catalan数,用组合公式求解即可。
??有\(n\)个\(A\)和\(n\)个\(B\)排在一起,要求从\(1\)开始的任意位置\(B\)的个数不能超过\(A\)的个数,求方案数。
??直接求解满足条件的比较复杂,我们考虑求不符合条件的情况
??令\(n\)个\(A\)和\(n\)个\(B\)组成的序列\(S\)不满足条件,那么我们就必定可以找到一个位置\(p\)满足\(S[1...2p+1]\)中有\(p+1\)个\(B\),\(p\)个\(A\)。我们将\(S[2p+2...2n]\)的所有\(A\)转\(B\),\(B\)转\(A\),可以得到一个由\(n-1\)个\(n+1\)个B,\(n-1\)个\(A\)组成的序列。
??相应的,对于一个由\(n-1\)个\(n+1\)个B,\(n-1\)个\(A\)组成的序列,我们必定可以找到一个位置\(p\)满足\(S[1...2p+1]\)有\(p+1\)个\(B\)和\(p\)个\(A\)。把\(S\)剩下的转换之后,就得到一个由\(n\)个\(A\)和\(n\)个\(B\)组成的、存在一个前缀为\(B\)比\(A\)多的序列。
??因此,这两个序列形成了一个双射,或者它们一一对应。
??所以,根据组合数定义,符合条件的排列的个数为:
\[
C_{2n}^n-C_{2n}^{n-1}=\frac{C_{2n}^n}{n+1}=Cat_n
\]
??对于连乘\(a_1*a_2*a_3*···*a_n\),可以通过加括号改变它的运算顺序,求有多少种运算顺序。
??我们考虑把每一个数和符号都作为二叉树的节点,保证每个数都是二叉树的叶子节点,那么每次就是选择一个\(*\)使得左边形成一棵二叉树,右边一棵。相当于把求的顺序分为前\(pos\)个和后\(pos\)个分开处理,答案也就是二叉树计数。
??给出凸\(n\)边形的边数,求有多少种分法可以把这个多边形分成互不重叠的\(n-2\)个三角形。
??我们假定已经选择了一条边,那么一这条边必定会形成两个三角形,而这条边也把这个多边形分成了两个多边形,我们设\(H_n\)为\(n\)边形的分割数,那么容易得到:
\[
H_n=H_{n-1}+H_3H_{n-2}+···+H_{n-2}H_3+H_{n-1}
\]
??我们再假设去了一条对角线,把\(n\)边形分成两个多边形,边数之和为\(n+2\),而从一个顶点出发的\(n-3\)条对角线所形成的分割数为:\(H_3H_{n-1}+H_4H_{n-2}+···+H_4H{n-2}+H_3H_{n-1}\),由于一条对角线有两个端点,重复计数两次,从所有顶点出发的n边形划分数为:
\[
(n-3)H_n=\frac{n(H_3H_{n-1}+H_4H_{n-2}+···+H_4H{n-2}+H_3H_{n-1})}{2}
\]
??联立两个式子得到:
\[
H_{n+1}=(\frac{4n-6}{n})H_n
\]
??而这也是\(Catalan\)数的公式之一,所以可知\(H_n=Cat_{n-2}\)
标签:分割 line pos inline 多边形 序列 一起 display 常用
原文地址:https://www.cnblogs.com/fangbozhen/p/11761948.html