定义

递推式:

C(n+1)=∑i=1nC(i)∗C(n−i)C(n+1)=∑i=1nC(i)∗C(n−i)

C(n+1)=\sum_{i=1}^{n}C(i)*C(n-i)
其中 C(1)=C(0)=1C(1)=C(0)=1C(1)=C(0)=1

通项公式:

C(n)=Cn2nn+1C(n)=C2nnn+1

C(n)=\frac {C^n_{2n}}{n+1}
等式右边的 CCC表示组合数。

常见问题

有一个数列由两种数x" role="presentation">xxx和 yyy组成。其中x" role="presentation">xxx和 yyy的总个数相等。对于每一个位置,包括它之前y" role="presentation">yyy的出现次数均不大于 xxx的出现次数。求长度为2n" role="presentation">2n2n2n的这种数列的方案数。

我们把这个数列投到坐标系里。刚开始在原点,横坐标是下标,当前位置为xxx时纵坐标+1,为y" role="presentation">yyy时纵坐标-1。可以发现这个图像一定在第一象限,且因为xxx和y" role="presentation">yyy个数相等,最终一定在(2n,0)(2n,0)(2n,0)点。

设取到第nnn个位置时落在x" role="presentation">xxx轴的方案数为C(n)C(n)C(n),我们把取的过程分成两部分:第一部分为原点到再次落在xxx轴上的步数i" role="presentation">iii(i可以为0),第二部分为从iii到(n,0)" role="presentation">(n,0)(n,0)(n,0)的步数。第一部分的方案数为C(i)C(i)C(i),第二部分的方案数为C(n−i−1)C(n−i−1)C(n-i-1)(因为第二部分的第一步和最后一步是确定的)。递推式即为C(n)=∑n−1i=1C(i)∗C(n−i−1)C(n)=∑i=1n−1C(i)∗C(n−i−1)C(n)=\sum_{i=1}^{n-1}C(i)*C(n-i-1),转化一下即为C(n+1)=∑ni=1C(i)∗C(n−i)C(n+1)=∑i=1nC(i)∗C(n−i)C(n+1)=\sum_{i=1}^{n}C(i)*C(n-i),就是Catalan第nnn项。

第二种方法是把总方案-不合法方案。总方案为C2nn" role="presentation">Cn2nC2nnC_{2n}^n,不合法方案即为长度为2n2n2n的数列取n−1n−1n-1个xxx的情况,也就是C2nn−1" role="presentation">Cn−12nC2nn−1C_{2n}^{n-1},而Cn2n−Cn−12n=Cn2n−nCn2nn+1=Cn2nn+1C2nn−C2nn−1=C2nn−nC2nnn+1=C2nnn+1C_{2n}^n-C_{2n}^{n-1}=C_{2n}^n-\frac{nC_{2n}^n}{n+1}=\frac{C_{2n}^n}{n+1},这也就是Catalan的通项公式

Catalan数简介相关推荐

  1. 卡特兰数 Catalan数

    From: http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html 维基百科资料: 卡塔兰数 卡塔兰数是组合数学中一个常出现在各种计数问题 ...

  2. Catalan 数之Python演示

    这里写自定义目录标题 Catalan 数之Python演示 带限制条件的路径总数 Python演示代码说明 Python代码 Catalan 数之Python演示 关于Catalan 数,英文的下面网 ...

  3. Catalan数计算

    递归与分治   简介    要求用递归算法解决具有递推关系的序列和计数问题,用分治法高效解决具有非线性复 杂度的实际问题,结合文件操作处理大规模数据输入的问题,用 clock_t tm=clock() ...

  4. 面试收集--卡特兰数(Catalan数)应用

    引言:有高矮不同的12个人,现在要他们对应排成两列,保证两列分别有序,且对应位置总是第一列比第二列矮,请问有多少种排列方式? 这是蘑菇街笔试的时候一个题目,当时陷入了枚举分类的死循环中,殊不知如果知道 ...

  5. Catalan数——卡特兰数

    今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来 后来查了下,原来是Catalan数.悲剧啊,现在整理一下 Catalan数--卡特兰数] 一.Catalan数的定义令h( ...

  6. Catalan数推导(转载)

    Raney引理: 设整数序列A = {Ai, i=1, 2, -, N},且部分和Sk=A1+-+Ak,序列中所有的数字的和SN=1,在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均 ...

  7. BZOJ 1856: [Scoi2010]字符串 [Catalan数]

    1856: [Scoi2010]字符串 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1418  Solved: 790 [Submit][Status ...

  8. POJ 2084 Catalan数+高精度

    POJ 2084 /***************************************** author : Grant Yuan* time : 2014/10/19 15:42* so ...

  9. C++打印0到N的Catalan数卡特兰数(附完整源码)

    打印0到N的Catalan数卡特兰数 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测试) 打印0到N的Catalan数卡特兰数算法的完整源码(定义,实现,main函数测 ...

最新文章

  1. 全国大学生智能汽车竞赛-讯飞赛道开始报名啦!
  2. IT人的十八般武艺-序言
  3. 一个很炫的图片/相册浏览控件(Flex实现)
  4. 利用RSM和RSFC配置VLAN间路由
  5. ubuntu + pycharm + anaconda + pyqt4 + tools 配置
  6. cogs 315. [POJ3255] 地砖RoadBlocks
  7. 加动画喽。。有一次我设定动画的时间不管用。就把设置时间的代码位置调整到最开始。然后就好了。...
  8. Android ActivityManager常用方法
  9. Linux基本操作---实践+理解--CentOS 7
  10. 大数据常用的挖掘方法,主要有哪些?
  11. Html+Css实现鼠标经过图片放大
  12. 【Unity2D】实现人物死亡动画+代码
  13. Newton冷却定理微分数学公式推导
  14. ES6高级:扩展运算符,箭头函数,class类,iterator迭代器
  15. 《鱿鱼游戏》我怕了,还是整点阳间的游戏吧,Python版“碰糖”来袭—你能过几关?
  16. 算法题练习系列之(一):守形数
  17. HashMap 扩容阈值为什么是0.75
  18. B2C电商模式的现状是怎样的?有什么优劣势?
  19. Oracle多列统计信息
  20. CLR学习之初识CLR

热门文章

  1. python functools partial,【Python functools.partial 偏函数】
  2. 遗传算法求二元函数极值怎么编码_遗传算法求解二元函数极值源码
  3. 作业:用递归方法求Fibonacci级数,公式fib(n)=fib(n-1)+fib(n-2),(n>2),fib(1)=fib(2)=1
  4. My Presentation
  5. 编程新手入门:初学编程的正确学习方法!快速提升你的学习效率
  6. Keras CIFAR-10分类 SVM 分类器篇
  7. mysql中的行列转换
  8. Microsoft Build 2020注册不仅是开放的,而且是免费的,实时的,是虚拟的,并且一切都为您服务
  9. html块级元素转换内联,内联元素和块级元素相互转换
  10. 一位台湾读者写的《I. M. Wright's Hard Code》第一章閱讀札記