卡特兰数的起源

Catalan数源自Euler对凸多边形通过不相交的对角线切分成三角形的不同切分方案数。
n+1个顶点(A1,A2...An+1)的凸多边形,取定多边形的一条边,不妨设为A1An+1,任意取凸多边形的一个顶点Ak+1(k=1,2...n-1),可以将凸多边形分为T1,R,T2三部分,如图

T1部分是由k+1个顶点组成的凸多边形,T2部分是由n+1-k个顶点组成的凸多边形。故设n+1个顶点的凸多边形总得剖分数是h(n),那么有
如下的递推公式:

这个递推关系就是卡特兰数所要求的,它的解也就是卡特兰数,不过这里面有个问题,就是当k=1或者n-1时,分不出三部分,只有两部分;令h(1) = 1; h(n-1) =1; 因为此时凸多边形被分为三角形A1A2An+1和另外一个凸多边形(或者是A1An+1An和另外一个凸多边形),这种切分的方案数等于剩余的那个凸多边形的切分方案,所以令h(1) = 1; h(n-1) = 1是合理的;对等式移向处理可得

而等式的右边可以通过对n个顶点的凸多边形的一个三角剖分问题来分析解答,如图:

上图n个顶点,其三角剖分的方案数为h(n-1);而等式右边的含义是选定B1,再任选B3,B4...Bn-1顶点连接成一条对角线,求其左边部分的方案数乘以右边部分的方案数的一个合集,上图是顶点B1,对角线取B1Bk+1的一种情形。
那么又与h(n-1)有着怎样的对应关系呢?是对n个顶点再取了一次合集,不过它与h(n-1)的关系呢,显然这里面是包含重复计数的:首先每条对角线对应两个顶点,所以中对每个顶点计算一次,每个顶点一共被计算了两次,所以要除2,其次每一种三角剖分的方案都对应n-3条对角线,即n-3条对角线合起来才构成一种剖分方案,所以还要除(n-3),这样就有了如下的等式:

代入公式中,化简可得

依据h(1)=1; h(2)=1;迭代可以得到h(n)的公式,即卡特兰数公式:

相信很多人看到过的公式跟这个可能会有所差异,有可能是这样的:

那么哪个才是正确的呢?其实一看也会觉得两个公式都是对的,只是在使用的时候,我们应该如何确定这个n的问题!
下面看有一个不穿越对角线问题,是卡特兰数的一个典型应用。

一位大城市的律师在他住所以北n个街区和以东n个街区处工作,每天她走2n个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?

一共14种走法,取n=4,套用第二个公式与结果一致70/5=14,那我们来看看套用第一个公式又意味着什么呢?20/4=5,5种方案,仔细看会发现,5种方案其实指的是不接触对角线的方案数!

下面我们来分析一下这个问题,从点(0,0)到点(4,4)不接触对角线的方案数是多少?由于不能接触对角线,所以第一步肯定是走点(1,0),并且最后一步肯定是从点(4,3)走到(4,4)。所以这种方案数与从点(1,0)到点(4,3)的方案数是一样的,这里我不想告诉你从(1,0)到(4,3)的方案数是走了一个边长为3的不穿越对角线的方案数,虽然确实是这样,但如果这么考虑问题,就成了一个循环了,一开始你怎么知道这个公式的,对吧!

回到原问题,从(1,0)到(4,3)不接触对角线的方案数有多少呢,首先我们知道总得走法是从6个中选3个的组合问题,共有20种,在20种方案中共有多少种是满足要求的呢,对于任意一条接触到对角线的方案,我们将其从(1,0)点开始到最后一个接触对角线的点结束,这之间的部分以对角线为轴做映射,再拼接上最后到点(4,3)的一段,可以得出一条从(0,1)到(4,3)的线路,也就是说每一条从(1,0)到(4,3)接触对角线的线路都有一条从(0,1)到(4,3)的线路与之对应,而每条从(0,1)到(4,3)的线路都一定穿越对角线,所以从(1,0)到(4,3)不接触对角线的方案数等于从总线路数中减去从(0,1)到(4,3)的方案数,这里也就是20 - 15 = 5;

就是我们之前看到的结果!从中我们也可以发现,对于接触对角线的问题其实等于将n + 1以后的不接触对焦心啊问题!当然卡特兰数问题博大精深,还有许多问题还没有搞明白。。。

关于Catalan(卡特兰)数的理解相关推荐

  1. Catalan (卡特兰数)

    Catalan (卡特兰数) 前置知识: 1.排列数公式: A n m = n ( n − 1 ) ( n − 2 ) . . . ( n − m + 1 ) A^m_n=n(n-1)(n-2)... ...

  2. 【数论】——Catalan 卡特兰数

    Catalan 卡特兰数 文章目录 Catalan 卡特兰数 定义 计算 证明 推论 代码 定义 给定 n 个 0 和 n 个 ** 1**,它们将按照某种顺序排成长度为 **2n ** 的序列,求它 ...

  3. [杂谈] 14. Catalan卡特兰数

    文章目录 1. 前言 2. 卡特兰数递推公式推导 3. 卡特兰数性质 4. 卡特兰数简单实例 实例1:进出栈问题 实例2:进出栈问题变种 实例三:电影购票问题 实例四:上班路径问题 实例五:乘法结合律 ...

  4. Catalan卡特兰数

    卡特兰数是组合数学中一个常出现在各种计数问题中的数列,其前几项为(从第零项开始) : 1, 1, 2, 5, 14, 42- 计算卡特兰数的通项公式:h(n)=C(2n,n)/(n+1) 卡特兰数的应 ...

  5. 608E出入栈卡特兰数不理解

    在我看来只有一种出入栈方式啊,那就是1234入栈,4321出栈.明明我之前理解的,生气 #include<stdio.h> int n,cnt; void DFS(int x,int y, ...

  6. 卡特兰数 Catalan

    做初赛题,回顾到以前学的一些知识,发现还有其他广泛的应用,所以在此记录并当作复习,若有不当之处,随时欢迎读者斧正. Catalan 卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中 ...

  7. LeetCode 96之卡特兰数

    96不同的二叉搜索树 最近看到卡特兰数所以就拿LeetCode上一道题来练练,加强一下对卡特兰数的理解,但是这道题是卡特兰数最基本的n^2的推导. 什么是卡特兰数呢? 卡特兰数满足以下性质: 令h(0 ...

  8. Nowcoder 5477E. 弦(卡特兰数、组合数学)

    题目描述: 给定一个圆,圆上有2N个互不重叠的点.每次操作随机选择两个先前未选择过的点连一条弦,共连成N条弦,求所有弦不交的概率. 输入描述: 一行,只有一个整数N(1≤N≤10^7). 输出描述: ...

  9. 卡特兰数Catalan

    1.卡特兰数的性质 其实重要的就两个公式:1和3. 公式1是卡特兰数的通项公式. 公式2是卡特兰数的递归公式.注意递推公式是C n+1=- 通常是发现问题可以用卡特兰数的递推公式来解决,从而想到卡特兰 ...

最新文章

  1. 人工智能微控制器体系结构
  2. springboot整合shiro使用shiro-spring-boot-web-starter
  3. Linux 最常用的脚本,值得学习收藏!
  4. Web开发-数据格式选择
  5. Go与PHP区别:类型 引用 语法 错误 性能 应用 生态
  6. linux常用命令和配置
  7. linux 安全防护管理
  8. mvc Filters 过滤器
  9. 游族内部信:年终奖如期发放 继续招聘全球化游戏人才
  10. 个人h5第三方支付接口_个人免签支付接口系统搭建源码多种方式
  11. sql统计各科成绩大于平均分的人_SQL第三关:汇总分析
  12. 大华摄像机RTSP断流
  13. web页面和ssh登陆到防火墙
  14. 78、无线网络设备知识大汇总,值得收藏学习!
  15. 80386 保护模式
  16. 简单线性回归截距假设检验_统计推断——假设检验——简单线性回归分析
  17. 云效平台是做什么的?有哪些优缺点?
  18. 八分量基于区块链技术赋能我国工业互联网建设
  19. 如何自学Axure(0基础入门教程)
  20. 学GIS开发怎么入门,GIS专业的学生应该掌握什么知识 ?

热门文章

  1. 微信小程序之多规格选择
  2. MATLAB 输入和输出参数
  3. 网络聊天室(linux,java,Android)
  4. python坑爹的黑店_曝光米兰爱马仕黑店极其坑爹配货经验!大家不要再白白上当了!...
  5. 关于CSP-S2021
  6. 快来看啊,2023成都Java培训机构排行榜出来啦!
  7. 翻译:Pong Game Tutorial
  8. php将文本文件中的内容呈现到一个表格中
  9. composer init 命令详解
  10. UVALive 4394 String painter——dp