首页 > 其他分享 >【数学】组合数学 - 卡特兰数

【数学】组合数学 - 卡特兰数

时间:2024-04-12 12:11:22浏览次数:29  
标签:方案 frac 组合 cdot 括号 数学 2n 卡特兰

父级页面:【数学】组合数学

卡特兰数

记号为 \(H_n\) 第n个卡特兰数,下面的n就是指这个。

\(H_0=1, H_1=1, H_2=2, H_3=5, H_4=14, H_5=42\)

卡特兰数最常见的场景是合法的括号序,还有栈进出的方案。他们的特点就是“右括号”、“出栈”的次数不能超过剩余的“左括号”、“入栈”的次数。这个可以用一个叫做反射法的方法统计。

圆上2n个点,用n条线段,每个点连1条线段,然后一共有多少种方法。连接的两个点,左端点认为是入栈,右端点是出栈,所以对应到上面的问题。

n+2个顶点的凸多边形的三角剖分。这个还是用O(n)递推公式去理解好了。固定(1,2)这条边为底,它属于哪个三角形?三角形的顶点有n+1种选法。确定这个顶点之后会递归给两侧的小多边形。也就是

\[H_n=H_0H_{n-1}+H_1H_{n-2}+H_3H_{n-3}+\cdots+H_{n-1}H_0 \]

其中 \(H_0 = 1\)

这个公式用“向上或向右走格点的方案”也挺好证明的。枚举这条路径上除了路径端点外,第一次到达y=x的点,设其横坐标为i,显然其纵坐标也为i。由于是“第一次到达”,所以套用下文的“i步向上和i步向右的除端点外不接触y=x的方案数”,也就是 \(H_{i-1}\),在i之后,不再需要不接触y=x,只需要不穿过y=x,所以后续的n-i步对应 \(H_{n-i}\) ,所以:

\[H_n=\sum\limits_{i=1}^{n} H_{i-1}H_{n-i} \]

n个相同的节点组成的二叉树。遍历当前节点的时候入栈,在进入右子树的之前要先把当前节点及其之前的弹出,唯一对应这个栈。

可以说,如果不考虑非法的方案,如果有n个左括号和n个右括号,显然方案是 \(C_{2n}^n\) ,那么非法的方案呢?

如果以左括号为纵坐标+1,右括号为横坐标+1,上面的合法方案相当于是整条线都在y=x直线以上。考虑非法的方案,一定有第一个横坐标+1跨过了y=x的线,考虑在这个第一个越过y=x的点之后,一定到达的是y=x-1的线,把后续的整条线按y=x-1翻转(相当于是左右一一对应互换,所以计数一样),翻转之后的终点在(n+1, n-1),所以方案数是 \(C_{2n}^{n-1} = C_{2n}^{n+1}\)。

所以合法的方案数 \(H_n = C_{2n}^{n} - C_{2n}^{n-1}\)

展开这个式子

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

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

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

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

\[=\frac{(2n)!}{n!(n+1)!} \]

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

同理

\[H_n =\frac{(2n)!}{n!n!(n+1)} \]

\[=\frac{(2n)(2n-1)(2(n-1)!}{n\cdot n\cdot (n-1)!(n-1)!\cdot (n+1)} \]

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

\[=\frac{(2n)(2n-1)H_{n-1}}{n\cdot (n+1)} \]

\[=\frac{4n-2}{n+1}\cdot H_{n-1} \]

与这个方法类似的计数方式就是“向上或者向右的格点路径计数”,“不越过某条线”这个条件就等价于第一次越过这条线之后的每一步都沿着这条线的最近的平行线做一个对称,可以解决诸如“所有元素都是+1和-1(数量不一定相等)”,比如n个+1和m个-1,求有多少种排列方式使其前缀和最低时不低于k(k<=0)。就是把第一次触碰到k-1之后的+1和-1全部符号变成相反数。如果不进行这个操作的话最后和为n-m,方法数为C(n+m,n)。其实就是把终点(n,m)按某条表示限制前缀和的直线对称,得到的点就是结果。

除端点外不接触y=x的n步向上和n步向右的路径数:易知第一步一定是向上,最后一步一定是向右,然后变成从(0,1)到(n-1,n),不穿过直线y=x+1的路径数,即 \(H_{n-1}\)

标签:方案,frac,组合,cdot,括号,数学,2n,卡特兰
From: https://www.cnblogs.com/purinliang/p/18130909

相关文章

  • 蓝桥杯-构造(数学公式1/n = 1/(n+1) + 1/(n+1)n )
    0.题目1.题解1.0找规律n=1,1/1=1/2+1/3+1/6n=2,1/2=1/4+1/6+1/12n=3,1/3=1/6+1/9+1/18....实际上,1/6=1/12+1/12,1/12=1/36+2/36=1/36+1/18即1/6=1/(62)+1/(623/2)+1/(623),即2,3,6三种1.1构造我们想要知道1/n......
  • 回溯-组合
    回溯-组合回溯法的本质是穷举,其主要是为了解决n个for循环的问题,在for循环中套着递归从而不断实现for循环。回溯法解决的问题都可以抽象为树形结构,一般是在给定集合是取出符合一定规则的数据。集合的大小构成树的宽度,也即第一层的for循环遍历的范围,递归的深度构成树的深度,也就暴力......
  • 北京大学2024春季高等数学A(II)试题及简评
    总的来说,难度适中,可能第一题会卡一下,是一个极坐标的反向换元,如果想不到硬做还是挺难的,非常遗憾,博主没有瞪眼法瞪出来,最后才想出来但是已经来不及了TAT。另外二、六题都是挖洞法,分别是Stokes和Green的挖洞法,只要细心发现被积函数和积分区域的奇点就可以。第三题的不能使用Gauss......
  • 洛谷题单指南-数学基础问题-P1072 [NOIP2009 提高组] Hankson 的趣味题
    原题链接:https://www.luogu.com.cn/problem/P1072题意解读:求有多少个x,满足x和a0​的最大公约数是a1​,x和b0​的最小公倍数是b1,多组数据。解题思路:枚举法:因为x和a0​的最大公约数是a1​,x和b0​的最小公倍数是b1,所以x不大于b1​。枚举x有两种思路:1、x是a1的倍数,最多需要枚举......
  • 组合数学
    逆元若\(i\cdotx=1\),则\(i^{-1}=x\)。递推求乘法逆元\[令模数为p,正整数i,a=\lfloor\frac{p}{i}\rfloor,b=p\operatorname{mod}i,且b\ne0。\\a\cdoti+b=p\\\Downarrow\\a\cdoti+b\equiv0(\operatorname{mod}p)\\\frac{i}{b}+\frac{1}{a}\equiv0(\o......
  • 洛谷题单指南-数学基础问题-P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
    原题链接:https://www.luogu.com.cn/problem/P1029题意解读:已知x,y,求有多少对p、q,使得p、q的最大公约数为x,最小公倍数为y。解题思路:枚举法即可。枚举的对象:枚举p,且p必须是x的倍数,还有p<=yq的计算:q=x*y/p,q要存在,必须x*y%p==0,且gcd(p,q)==x100分代码:#include......
  • 洛谷题单指南-数学基础问题-P1835 素数密度
    原题链接:https://www.luogu.com.cn/problem/P1835题意解读:要计算L-R范围内素数的个数。解题思路:直接对L~R的每个数判断素数肯定不可取,因为L、R的范围较大。既然要计算素数的个数,那么可以把其中的合数标记出来即可。如何标记合数?可以借助于筛素数的算法思想,枚举每一个素数,然......
  • 【SQL】mysql数学函数功能介绍并举例
    mysql数学函数:ABS(x):返回x的绝对值。CEIL(x)或CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):返回x四舍五入到小数点后d位的值。POW(x,y)或POWER(x,y):返回x的y次幂。SQRT(x):返回x的平方根。m......
  • 神经网络背后的数学原理
    原文地址:TheMathBehindNeuralNetworks2024年3月29日深入研究现代人工智能的支柱——神经网络,了解其数学原理,从头开始实现它,并探索其应用。神经网络是人工智能(AI)的核心,为从发现照片中的物体到翻译语言的各种应用提供动力。在本文中,我们将深入探讨神经网络是什么,它......
  • 【数学】多项式插值
    问题描述给出\(n+1\)个二维平面上的点对\((x_0,y_0),(x_1,y_1),(x_2,y_2),\cdots,(x_{n},y_{n})\),求一个经过这些点的不超过\(n\)次的多项式\(P(x)=p_{n}\cdotx^{n}+p_{n-1}\cdotx^{n-1}+p_{n-2}\cdotx^{n-2}+\cdots+p_{1}\cdotx+......