首页 > 其他分享 >卡特兰数

卡特兰数

时间:2024-02-22 21:12:47浏览次数:16  
标签:方案 frac times 2n Cat 卡特兰

为区别于组合数,用\(Cat(n)\)代表卡特兰数的第n项


是一种数列,其通项公式的一种形式为:
\(Cat_n=\frac{1}{n+1}\times C_{2n}^{n}(n=0,1,2...)\)
前几项数值为\(1,1,2,5,14,42,132,429\)
增长幅度为\(O(4^n)\)

递归定义式1

\(Cat_n=\sum_{i=0}^{n-1}Cat_i\times Cat_{n-i-1}\)
理解:对于n个点构成的二叉树,其形态有\(Cat(n)\)种
考虑dp,发现对于一个二叉树来说,枚举其左儿子大小为i,则去除根后右儿子大小为n-i+1

递归定义式2

\(Cat_n=Cat_{n-1}\times \frac{4n-2}{n+1}\)
不难发现\(\frac{4n-2}{n+1}\)的大小当n趋于正无穷大时为4,所以其增长幅度为\(O(4^n)\)

使用场景

递归定义式1适用于n不大的情况下求卡特兰数,不用处理除法(一般n<=500)

组合定义式

\(Cat_n=C_{2n}^{n}-C_{2n}^{n-1}=\frac{1}{n+1}\times C_{2n}^{n}\)
证明:

\[C_{(2n)}^{n}-C_{(2n)}^{n-1}=\frac{(2n)}{n!n!}-\frac{(2n)}{(n-1)!(n+1)!}=\frac{(2n)(n+1)}{n!n!(n+1)}-\frac{(2n)!n}{n!n!(n+1)}=\frac{(2n)!}{n!n!(n+1)}=\frac{1}{n+1}\times C_{(2n)}^{n} \]

例子

例1:01排列问题
给定n个0和n个1共2n个元素的数列,要求该数列的任意前缀,0的个数不少于1的个数,求方案数

考虑建一个坐标轴出来,选0向上走,选1向下走,那么任意时刻不能走到坐标轴以下。

先不考虑只在正半轴的条件,方案数就是$C_{2 * n}^{n} $,这时我们只需要把不符合要求的删掉。
先看下面的图,这种方案显然不合要求:

image
考虑这种不合法的方案,一定经过y=-1。
image

考虑对于y=-1对称,显然对称后的轨迹最后一定停留在(2* n,-2),也就是每一条不合要求的线都可以转化为一条从原点出发,最后到x=-2的轨迹。不难看出,反过来转化也是成立的。即这两者是一一对应的。现在只要算出有多少种情况最后停留在直线x=-2上,这很简单,2* n次选择n-1次向下(或者可以说是n-1次向上)。

当然解决这个问题的模型很多(比如说这个):
image

就不一一列举了。

当然还有很多例子:
例2:给定n个左括号和n个右括号,其合法的匹配序列的方案数
例3:给定n个元素,从1到n,其进出栈的不同方案数
例4:给定n条边的凸多边形,用n-3条边划分成n-2个三角形,其方案数
......
上面的几个例子都是卡特兰数

标签:方案,frac,times,2n,Cat,卡特兰
From: https://www.cnblogs.com/wangwenhan/p/18028203

相关文章

  • 卡特兰数小记
    引入\(n\)个节点的二叉树个数。长度为\(2n\)的合法括号序列数量。不加说明的给出结论:上面两个问题的答案均为卡特兰数列\(H\)的第\(n\)项,\(H_n\)。暴力DP理解第一个问题设DP状态\(f(i)\)为\(i\)个节点的二叉树个数。求\(f(i)\)时,枚举左儿子节点数量\(j......
  • 关于卡特兰数
    不那么有意思的定义卡特兰数\(\big(Catalan\big)\)用\(H\)来表示,有形式如:\(H_n=\dfrac{\binom{2n}n}{n+1}(n\geq2)\)很好,你已经知道定义了。老师说:它是栈出栈入栈的\(方案数\)\(???\)放到一个递推式就有了:\(H_n=\begin{cases}H_{n-1}+H_{n-2}&\text{if}......
  • CF-1831-E-卡特兰数+异或哈希+差分
    1831-E题目大意给定一个整数\(n\),和\(k\)个区间,区间端点范围在\([1,n]\)内。如果有一个长为\(n\)合法的括号序列,且它的这\(k\)个区间\([l,r]\)中的子括号序列也是合法的,那么称这个括号序列是“好的”。请你求出有多少个长度为\(n\)的“好的”括号序列,答案对\(998244353\)取模......
  • 卡特兰数&斯特林数
    卡特兰数引入不妨从找规律开始。下标从\(0\)开始,卡特兰数的前几项为:1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790…那么通过认真的瞪眼观察,会发现它们满足递推关系。关于卡特兰数是一个很常见的数列。它并没有一个足够......
  • 火车进栈 (卡特兰数+位压高精)
    火车进栈(卡特兰数+位压高精)[题目](130.火车进出栈问题-AcWing题库)思路:车厢进出栈视为\(01\)序列,则每种\(01\)序列对应一种出栈顺序,答案即为:\({\Large\frac{1}{n+1}C_{2n}^{n}}\)数据范围:\(1{\Large\le}n{\Large\le}60000\)(数据开到\(2n\),因为这个卡了一小时qwq......
  • 卡特兰数专题(Catalan)
    卡特兰数专题(\(Catalan\))一、什么是卡特兰数?明安图数,又称卡塔兰数,英文名\(Catalan\)\(number\),是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图\((1692-1763)\)和比利时的数学家欧仁·查理·卡塔兰\((1814–1894)\)的名字来命名,其前几项为(从第零项开......
  • 卡特兰数专题(Catalan)
    卡特兰数专题(\(Catalan\))一、什么是卡特兰数?明安图数,又称卡塔兰数,英文名\(Catalan\)\(number\),是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图\((1692-1763)\)和比利时的数学家欧仁·查理·卡塔兰\((1814–1894)\)的名字来命名,其前几项为(从第零项......
  • 【学习笔记】卡特兰数
    卡特兰数定义:卡特兰数的计算公式涉及组合计数,它是很多组合问题的数学模型,是一个很常见的数列。\(\bf{\underline{卡特兰数(Catalan)}}\)是一个数列,它的一种定义是:\[C_n=\frac{1}{n+1}\binom{2n}{n},n=0,1,2,...\]卡特兰数有三个计算公式:公式1:\[C_n=\frac{1}{n+1}\binom{2n}......
  • 卡特兰数 Catalan 数列
    卡特兰数Catalan数列引入有一个无限大的栈,进栈的顺序为\(1,2,\cdots,n\),求有多少种不同的出栈序列。设\(h[n]\)为\(n\)个数的出栈序列方案数。可以这样想\(k\)是最后一个出栈的数,那么比\(k\)早进栈早出栈的有\(k-1\)个,方案数也就是\(h[k-1]\)。同理比\(k\)晚......
  • 浅谈卡特兰数
    定义先给一个通项公式\(Cat(n)=\frac{C_{2n}^{n}}{n+1}\)。卡特兰数是一个比较通用的模型,有很多的问题都与其有关,其中比较经典的是括号序列计数和二叉树计数。经典的问题一些描述括号序列计数给定\(n\),求有多少个合法的长度为\(2n\)的括号序列。二叉树计数给定\(n\),......