当前位置: 首页 > news >正文

$\text{Catalan}$ 数 卡特兰数

定义

  • 公式 \(1\)\(C_n=\begin{pmatrix}2n\\n\end{pmatrix}-\begin{pmatrix}2n\\n-1\end{pmatrix}\)

  • 公式 \(2\)\(C_n=\sum_{a+b=n-1}C_aC_b\)

  • 公式 \(3\)\(C_n=\frac{4n-2}{n+1}C_{n-1},C_0=1\)

其中公式 \(3\) 表明其增长速度是 \(O(4^n)\) 的。

定义式 \(C_n=\frac{1}{n+1}\begin{pmatrix}2n\\n\end{pmatrix}\) 可以由公式 \(1\) 直接拆组合数推导出来。

组合意义

主包不会代数,所以在此仅说明一下公式 \(1\) 的组合意义推导过程。我们考虑通过 \(\text{Catalan}\) 数解决这么一个问题:

Statement:从 \((0,0)\) 走到 \((n,n)\),只能向上走或向右走,不能穿过直线 \(y=x\)(即 \(y-x\le 0\)),方案数是多少?

方案数是 \(C_n\),接下来我们考虑证明这一结论。

(图片来源于OI-wiki:卡特兰数,侵删)

image

计数通常要求找到的特性对象存在双射关系,我们也尝试这样寻找,以下我们尝试用第一次触碰点这一特殊性无重地映射若干种情况。

为什么有这样的对应?我们不妨令其方案数为 \(T_n\),显然 \(T_0=1\),而考虑每种方案第一次触碰 \(y=x\) 的位置 \((k,k)\),发现第一步一定向右,最后一步一定向上。然后就可以划分为两个子问题,下面 \((1,0)\to(k,k-1)\) 的方案数是 \(T_{k-1}\),上面 \((k,k)\to(n,n)\) 的方案数是 \(T_{n-k}\),总递推式就是 \(T_n=\sum_{a+b=n-1}T_aT_b\),符合公式 \(2\)

image

由于主包没有高超代数技巧,为了证明公式 \(1\)\(2\) 的等效性,我们再来验证一下公式 \(1\) 的对应性。首先不考虑穿过的限制,方案数是 \(2n\) 步中选 \(n\) 步向上即 \(\begin{pmatrix}2n\\n\end{pmatrix}\),然后我们考虑去掉每个非法情况,这些非法情况一定在至少一个点触碰了 \(y=x+1\),一样地找到第一个触碰点 \((k,k+1)\),到 \((n,n)\) 的向量就是 \((n-k,n-k-1)\)。关于 \(y=x+1\) 翻折一下后半段,可以得到位移变成了 \((n-k-1,n-k)\),所到的点为 \((n-1,n+1)\)。这个翻折保证了计数的双射性,且对于到 \((n-1,n+1)\) 没有任何限制,每种方案都可以对应一个初始触碰点。那么这些非法情况的计数就是 \(\begin{pmatrix}2n\\n-1\end{pmatrix}\) 或者 \(\begin{pmatrix}2n\\n+1\end{pmatrix}\) 的。

所以得到

\[T_n=\begin{pmatrix}2n\\n\end{pmatrix}-\begin{pmatrix}2n\\n-1\end{pmatrix} \]

至于公式 \(3\) 我们平时不用我也不会证。

递推

  • 可以预处理 \(4n\) 范围内的乘法逆元后采用公式 \(3\)

  • 可以预处理 \(2n\) 范围内的组合数后采用公式 \(1\)

以上处理方法都是 \(\Theta(n)\) 的。

应用

上述 \((0,0)\to(n,n)\) 路径计数问题是比较经典的问题。

  • 括号计数问题

Statement:由 \(n\) 对括号构成的合法括号序列数 \(C_n\)

\(x\) 坐标映射为前缀左括号数量,\(y\) 映射为右括号数量,前缀长度 \(x+y\)

  • 三角剖分计数问题

Statement:对角线不相交的情况下,将一个凸 \((n+2)\) 边形区域分成三角形区域的方法数为 \(C_n\)

同样通过公式 \(2\) 推导,给顶点编号 \(1\dots n+2\),枚举关于边 \((1,n+2)\) 的三角形第三个顶点 \(k\) 即可。

  • 出栈序列计数问题

Statement:一个栈(无穷大)的进栈序列为 \(1,2,3,\dots,n\),合法出栈序列的数目为 \(C_n\)

括号计数类似。

  • 数列计数问题

Statement:由 \(n\)\(+1\)\(n\)\(−1\) 组成的数列 \(a_1,a_2, \ldots ,a_{2n}\) 中,部分和满足 \(a_1+a_2+ \ldots +a_k \geq 0~(k=1,2,3, \ldots ,2n)\) 的数列数目为 \(C_n\)

括号计数类似。

  • 圆内不相交弦计数问题:

Statement:圆上有 \(2n\) 个点,将这些点成对连接起来且使得所得到的 \(n\) 条线段两两不交的方案数是 \(C_n\)

考虑点 \(1\) 只能和 \(2k(k\in [1,n]\cap \Z)\) 连边,否则无法分出合法子问题。同样枚举这个 \(k\) 然后可以由公式 \(2\) 推出。

http://www.rkmt.cn/news/22834.html

相关文章:

  • 风险评估的流程和各阶段的工作内容
  • 稀疏离散分数阶傅里叶变换的MATLAB实现
  • 2025 年导轨丝杆源头厂家最新推荐榜,技术实力与市场口碑深度解析的优质企业榜单东莞/直线/滚珠/孚雷导轨丝杆厂家推荐
  • far的数据类型
  • WSL+Ubuntu + AI (Claude, SpecKit, iFlow) 常用命令
  • 事件在react中的处理方式?
  • 农经权报表生成小程序介绍
  • Linux 中检测gz压缩文件是否损坏
  • 2025年信息流代运营服务商权威推荐榜:专业投放策略与高转化效果深度解析,助力企业精准营销
  • 权限维持-Windows权限维持
  • 1017
  • 2025 广州人力资源/派遣/外包/劳务外包/人事代理/推荐榜:精典人才创新 5 星领跑,适配招聘 / 测评 / 培训全场景企业需求
  • 2025 年选矿行业 2 号油厂家最新推荐排行榜:环保型 / 新型 / JQ202/101/QX/BK201/323 起泡剂等产品权威筛选,助力企业选对优质供应商
  • 2025 年探伤仪厂商最新推荐榜单:涡流 / 超声波 / 管材 / 焊缝 / 无损探伤仪优质企业权威盘点
  • 2025 年罗茨风机厂家最新推荐排行榜权威发布!深度解析各品牌优势助企业精准选型UNTW无泄漏/BRW水冷式罗茨风机厂家推荐
  • 【树莓派】安装PostgreSQL
  • 【数据结构】数据结构秘籍:如何衡量“查找”的快慢?ASL是关键! - 教程
  • 压缩 PDF 文件大小(3 大实用的 Python 库) - E
  • 请输入标题
  • 2、docker入门基本概念 - 实践
  • 国产项目管理工具Gitee的崛起:数字化转型浪潮下的本土化突围
  • 2025年精密磨床/CNC机械加工厂家推荐榜单:涵盖铣床/车床/磨削/多轴/复合加工,铝/不锈钢/钛合金/模具钢/塑料件定制,汽车/医疗/航空航天/机器人零件及模具工装夹具加工
  • 开发日志
  • Gitee 2025:中国开发者生态的崛起与本土化优势
  • JavaBean知识总结及范例
  • 2025 年家装管道生产厂家最新推荐排行榜:覆盖云南昆明贵州贵阳四川成都重庆,精选优质 PPR/PVC 管道品牌,解决选购难题
  • 强合规行业DevOps选型:告别工具拼凑,找到真正适配的国产化DevOps方案
  • 大疆无人机RTMP推流至LiveNVR实现web页面实时播放与录像回放,并可以转GB28181协议级联推送给上级监控视频管理平台
  • 2025 年最新金相厂家最新推荐排行榜:涵盖金相磨抛机 / 切割机 / 显微镜 / 抛光机 / 预磨机设备,助力企业精准选择优质品牌
  • maven的概述以及在mac安装部署