卡特兰数

卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 :
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, ...

计算公式:

主要用于有映射关系的排列组合问题中。

所谓有映射关系的排列组合就是指,后续的排列方式与前面的排列方式有对应的关系。
例如:
入栈出栈顺序问题;
括号组合问题;
...

以括号组合为例进行说明:

  • 1组括号的排列方式:1
    ()

  • 2组括号的排列方式:2
    ()()
    (())

  • 3组括号的排列方式:5
    ()()()
    ()(())
    (())()
    ((()))
    (()())

其数值依次为1、2、5...是卡特兰数序列

括号组合问题就是(、)的排序。显然,(、)的排序不像数字一样可以以任意方式进行组合,从而以全排列进行计数。
)的出现数必须少于(,显然,(的情况影响着)的出现情况,所以(、)的顺序是有映射关系的。
那么我们就可以通过卡特兰数来计算n个括号所构成的所有序列数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了...
    mylocal阅读 3,865评论 0 0
  • Golang 实现卡特兰数 卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中的数列。前20项为...
    Hawken阅读 4,198评论 0 0
  • 首先来自百度百科Q:一个栈(无穷大)的[进栈]序列为1,2,3,…,n,有多少个不同的[出栈]序列?A1:首先,我...
    shuff1e阅读 2,828评论 0 0
  • 假如现在有这么一个问题: 一个序列从1到n依次入栈, 那么可能的出栈序列一共有多少种?注意: 在任意一个时刻,只要...
    爱上落入尘世间的你阅读 10,454评论 0 10
  • 你跟我说,你嘴里起了一个口腔溃疡, 我装听不见,不以为然。 你扯着嘴唇让我看, 天哪!比我大姆哥哥的盖盖,还要大一...
    桥上风景阅读 1,396评论 8 3

友情链接更多精彩内容