首页 > 其他分享 >Catalan 数

Catalan 数

时间:2024-10-05 13:11:16浏览次数:6  
标签:递归 路径 times Catalan 划分 2i

Catalan 数

真的不知道怎么开头。

学习 Catalan 数先从其定义入手。

\(f_i\) 是卡特兰数第 \(i\) 项,令 \(f_0 = 1\)

递归式: \(f_i = \sum_{j = 0}^{i - 1} f_j \times f_{i - j - 1}\)

递推式:$f_{i+1} = f_i \times \frac{2 \times (2i + 1)}{i+2} $

化简可以得到:\(f_i = C_{2i}^{i} - C_{2i}^{n - 1}\)

根据递归式,可以知道卡特兰数在描述:当我们可以对一个问题进行划分,得到两个子问题, 并且两个子问题互不影响。

经典例题:凸多边形的三角划分

我们用若干条线连接 \(n\) 边形的两个顶点,线和线之间不可以相交,最后划分成若干个三角形,问划分方案的数量。

我们在初中就学习了这个东西。但本质上就是划分,先来一刀,划分成两个小的凸多边形。枚举划分后左边有多少个顶点,再把两个小凸多边形的方案数乘起来。

得到递归式:\(f_i = \sum_{j = 0}^{i - 1} f_j \times f_{i - j - 1}\)

一模一样。

二叉树的方案数

\(n\) 个点的二叉树有多少种。区分左儿子和右儿子,即把左右儿子直接交换也算新的。

二叉树也是非常经典的划分成两块的问题。所有还是枚举左儿子节点数,直接列出递归式。

\(f_i = \sum_{j = 0}^{i - 1} f_j \times f_{i - j - 1}\)

一模一样。

上述问题都是根据递归式来的。我们接下来讲一下:\(f_i = C_{2i}^{i} - C_{2i}^{i - 1}\)

二维平面路径问题

在一个二维平面坐标系上从 \((0,0)\) 到 \((n,n)\),每次只可以先上走一步,或向右走一步,问有多少条路线。有唯一要求,走过的点必须在直线 \(y =x\) 下,即在任意时刻向上走的次数必须小于等于向右走的次数。

去掉唯一条件,就是用 \(n\) 个向上,\(n\) 个向右,问这 \(2n\) 个操作的所有排列。我们易得,在全是向上走的序列中,选 \(n\) 个出来变成向右。

考虑不合法路径,对任意一个不合法路径沿着直线 \(y = x + 1\) 镜像,所有不和法路径都到了这条线,且只有不和法路径到了这条线。镜像后终点变成了 \((n - 1,n+1)\) ,我们可以将不合法路径按上述方法一一映射成从 \((0,0)\) 到 \((n - 1,n + 1)\) 的路径,一共还是有 \(2n\) 个操作,只不过是选 \(n - 1\) 个当向右。

最后得到式子:\(f_i = C_{2i}^{i} - C_{2i}^{i - 1}\)

不相交弦问题

一个圆周上有 \(2n\) 个点,用弦将任意两个链接起来,使得任意两条线不相交。

我们将线改写成一个起点,一个终点。钦定起点和顺时针遇到的第一个终点连成一条线。我们可以做到一个一一映射。

还是从可以相交的角度考虑,易得共有 \(C_{2i}^{i}\) 种方案。

不合法的情况一定是一个终点没得连,就是前面的起点全被匹配了,所以还是和上述的 二维平面路径问题 一样,即任意时刻起点的数量一定大于终点的数量。

最后得到:\(f_i = C_{2i}^{i} - C_{2i}^{i - 1}\)

More

卡特兰数在到处都存在:括号序列的数量,进栈出栈,312 排列…理解到其本质就是对问题的划分,选取发生事件方案进行一一映射。其实就很简单了。

标签:递归,路径,times,Catalan,划分,2i
From: https://www.cnblogs.com/sirkey2119/p/18447776

相关文章

  • 卡特兰数(Catalan)
    1.简介:卡特兰数是组合数学中一个常出现于各种计数问题中的数列。十以内的卡特兰数,方便打表找规律,稍微记记。125144213242914304862167962.catalan递推式子(1)点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+10......
  • 卡特兰数专题(Catalan)
    卡特兰数专题(\(Catalan\))一、什么是卡特兰数?明安图数,又称卡塔兰数,英文名\(Catalan\)\(number\),是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图\((1692-1763)\)和比利时的数学家欧仁·查理·卡塔兰\((1814–1894)\)的名字来命名,其前几项为(从第零项开......
  • 卡特兰数专题(Catalan)
    卡特兰数专题(\(Catalan\))一、什么是卡特兰数?明安图数,又称卡塔兰数,英文名\(Catalan\)\(number\),是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图\((1692-1763)\)和比利时的数学家欧仁·查理·卡塔兰\((1814–1894)\)的名字来命名,其前几项为(从第零项......
  • 卡特兰数 Catalan 数列
    卡特兰数Catalan数列引入有一个无限大的栈,进栈的顺序为\(1,2,\cdots,n\),求有多少种不同的出栈序列。设\(h[n]\)为\(n\)个数的出栈序列方案数。可以这样想\(k\)是最后一个出栈的数,那么比\(k\)早进栈早出栈的有\(k-1\)个,方案数也就是\(h[k-1]\)。同理比\(k\)晚......
  • $Catalan$ 数
    前\(10\)项为:\(1,1,2,5,14,42,132,429,1430,4862\)递推公式\(tip:\)在\(n=17\)时\(Catalan\)数就会超过\(int\)范围。\[C_1=1\]\[C_n=C_{n-1}\frac{4*n-2}{n+1}\]出栈问题一个栈的入栈顺序为\(1,2,3,\ldots,n\)时,出栈顺序有多少种?栈中每个元......
  • Catalan数和Stirling数
    Catalan数Catalan数的计算公式是:c(2n,n)/n+1它有3个公式,分别是Cn=c(2n,n)/n+1、Cn=C0Cn-1+C1Cn-2+......+Cn-1C0、Cn=Cn-1(4n+2)/(n+1)Catalan数的应用十分广泛,有棋盘问题、括号问题、出栈序列问题等下面给出两道求解Catalan数的例题:P2532[AHOI2012]树屋阶梯由于数据非常......
  • 卡特兰数(Catalan number)
    Catalan数列目录目录Catalan数列目录定义Number说明表示1.递推定义2.递推关系3.通项公式4.通项公式II证明1.公式42.公式13.公式34.公式2证毕推荐链接定义Numbe......
  • 【XSY4320】Catalan(组合意义,DP,多项式)
    题面:Catalan题解:假瑞的做法orz考虑用组合意义来做,观察递推式\(f_i=\frac{1}{i}\sum_{j=0}^{i-1}f_jf_{i-j-1}\),它除了和卡特兰数递推式很像之外,还和二叉树计数的递推......