refernce: http://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0


卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。

卡塔兰数的一般项公式为 

前几项为 (OEIS中的数列A000108): 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...

[编辑]性质

Cn的另一个表达形式为 所以,Cn是一个自然数;这一点在先前的通项公式中并不显而易见。这个表达形式也是André对前一公式证明的基础。(见下文的第二个证明。)

递推关系

它也满足

这提供了一个更快速的方法来计算卡塔兰数。

卡塔兰数的渐近增长为

它的含义是左式除以右式的商趋向于1当n → ∞。(这可以用n!的斯特灵公式来证明。)

所有的奇卡塔兰数Cn都满足。所有其他的卡塔兰数都是偶数。

组合数学中有非常多.的组合结构可以用卡塔兰数来计数。在Richard P. Stanley的Enumerative Combinatorics: Volume 2一书的习题中包括了66个相异的可由卡塔兰数表达的组合结构。以下用Cn=3和Cn=4举若干例:

  • Cn表示长度2n的dyck word的个数。Dyck word是一个有n个X和n个Y组成的字串,且所有的前缀字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck words:

XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY

  • 将上例的X换成左括号,Y换成右括号,Cn表示所有包含n组括号的合法运算式的个数:

((())) ()(()) ()()() (())() (()())

  • Cn表示有n个节点组成不同构二叉树的方案数。下图中,n等于3,圆形表示节点,月牙形表示什么都没有。
  • Cn表示有2n+1个节点组成不同构满二叉树(full binary tree)的方案数。下图中,n等于3,圆形表示内部节点,月牙形表示外部节点。本质同上。

证明:

令1表示进栈,0表示出栈,则可转化为求一个2n位、含n个1、n个0的二进制数,满足从左往右扫描到任意一位时,经过的0数不多于1数。显然含n个1、n个0的2n位二进制数共有个,下面考虑不满足要求的数目。

考虑一个含n个1、n个0的2n位二进制数,扫描到第2m+1位上时有m+1个0和m个1(容易证明一定存在这样的情况),则后面的0-1排列中必有n-m个1和n-m-1个0。将2m+2及其以后的部分0变成1、1变成0,则对应一个n+1个0和n-1个1的二进制数。反之亦然(相似的思路证明两者一一对应)。

从而。证毕。

  • Cn表示所有在n × n格点中不越过对角线的单调路径的个数。一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右。计算这种路径的个数等价于计算Dyck word的个数: X代表“向右”,Y代表“向上”。下图为n = 4的情况:
  • Cn表示通过连结顶点而将n + 2边的凸多边形分成三角形的方法个数。下图中为n = 4的情况:
  • Cn表示对{1, ..., n}依序进出栈的置换个数。一个置换w是依序进出栈的当S(w) = (1, ..., n), 其中S(w)递归定义如下:令w = unv,其中nw的最大元素,uv为更短的数列;再令S(w) = S(u)S(v)n,其中S为所有含一个元素的数列的单位元。
  • Cn表示集合{1, ..., n}的不交叉划分的个数. 那么, Cn 永远不大于第n项贝尔数. Cn也表示集合{1, ..., 2n}的不交叉划分的个数,其中每个段落的长度为2。综合这两个结论,可以用数学归纳法证明 that all of the free cumulants of degree more than 2 of the Wigner semicircle law are zero. This law is important in free probability theory and the theory of random matrices.
  • Cn表示用n个长方形填充一个高度为n的阶梯状图形的方法个数。下图为 n = 4的情况:

卡塔兰数(Catlan)相关推荐

  1. C语言实现卡塔兰数catalan(附完整源码)

    实现卡塔兰数catalan 实现卡塔兰数catalan完整源码(定义,实现,main函数测试) 实现卡塔兰数catalan完整源码(定义,实现,main函数测试) #include <stdio ...

  2. Catalan卡塔兰数

    卡塔兰数 卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项公式为  另类递归式:  h(n)=((4*n- ...

  3. 【卡塔兰数】LeetCode 96. Unique Binary Search Trees

    LeetCode 96. Unique Binary Search Trees 本博客转载自:http://www.cnblogs.com/grandyang/p/4299608.html Solut ...

  4. 卡塔兰数(Catalan Number)--动态规划(Dynamic Programming)

    -卡塔兰数是组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡特兰(1814–1894)命名.历史上,清朝数学家明安图(1692年-1763年)在其<割圜密率捷法> ...

  5. 卡塔兰数用于求解不同形态的二叉树的数目,题目选自CS61A2021 LAB9 Q3: Number of Trees

    完全二叉树是一种每个节点都有2个分支或0个分支,但从来没有1个分支的树. 编写一个函数,返回恰好有n个叶结点的唯一完整二叉树结构的数目. 对于那些对组合学感兴趣的人来说,这个问题确实有一个封闭形式的解 ...

  6. 卡特兰数 卡塔兰数 概念 代码实现 模型分析全集

    特别鸣谢 参考1 参考2 参考3 概念 情境导入 一个栈(无穷大)的进栈序列为1,2,3,-,n,有多少个不同的出栈序列? 可以形象化地转化为括号问题,更好理解,进栈是(,出栈是),下面为n=3的全部 ...

  7. leetcode(96)不同的二叉搜索树——卡塔兰数

    题目描述 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / ...

  8. 卡特兰数(卡塔兰数)

    卡特兰数(卡塔兰数) 另附图一张: 来源:百度百科 典例: hdu 2067 小兔的棋盘 Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间, ...

  9. 洛谷P1722 矩阵Ⅱ (卡塔兰数)

    洛谷P1722 矩阵Ⅱ 卡塔兰数 题面 思路 代码 题面 给定一个1*(2n)的矩阵.现让你放入一样多的红色算筹和黑色算筹,使对于所有的i(1<=i<=2n),使第1~i格中红色算筹个数大 ...

最新文章

  1. c# 实现文本读取,语音报警功能
  2. input常用输入框限制
  3. oracle数据库应用与开发习题,《Oracle数据库应用》练习题及答案.docx
  4. Magicodes.IE 2.4发布
  5. [深度学习-实战]LSTM Attention训练IMDB文本的情感分析
  6. 使用crontab不能正常执行的问题
  7. java resouce_Java 获取Resource目录下的文件解决办法
  8. 黑马Java学习笔记之-----数组
  9. Android Binder -- AIDL 原理
  10. java的测试岗位_JAVA测试岗位职责
  11. 【翻译自mos文章】执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...
  12. H5页面点击图片自动全屏代码
  13. 华为笔记本linux双系统,真的有必要吗?华为笔记本搭载双系统
  14. centos 加密解密
  15. 实验六 文本串的加密解密
  16. 微信开放平台开发 微信登录
  17. 【翻译】ARM虚拟化软件和架构支持的设计,实现和评估
  18. 不需要到健身房的互动健身,so cool
  19. 日志查看 docker容器启动失败原因
  20. 【WiFi】beacon时槽

热门文章

  1. maven到底是什么
  2. ARM双核锁步DCLS Lockstep技术研究(FPGA实现)
  3. JAVA高频面试题目集锦
  4. 新手小白大学生,在宿舍做短视频自媒体,两个星期收益1700多
  5. Spring的DAO模块数据库操作实例
  6. label 字体添加中划线和下划线
  7. 红帽子linux硬盘安装教程,XP下硬盘安装RedHat Enterprise Linux 5.5图文教程
  8. 软件测试面试自我介绍/项目介绍居然还有模板?我要是早点发现就好了
  9. DSP、SSP、RTB的理解--计算广告
  10. 生产管理ERP软件系统的主要功能有哪些?