卡特兰数与栈

本文介绍了卡特兰数的概念,涉及排列数和组合数的计算,以及如何通过栈模型理解状态变化。特别强调了2n在表示状态中的应用和n的含义,以及如何通过进栈和出栈规则找出规律,减少重复计数。
摘要由CSDN通过智能技术生成

什么是卡特兰数?

前几项为(从第0项开始):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, ...

公式是什么?(其他推导公式放在后面先看最基础的)?

这个公式什么意思?

1.知道\textrm{C}_{m}^{n}是啥意思

排列从n个不同数字中取出m(m≤n)个数的所有排列的个数,叫做从n个不同shu中取出m个元素的排列数。有顺序

表示。

计算公式:

组合的定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。就是无顺序

计算公式:

2.带入到栈来理解

\textrm{C}_{2n}^{n}下面这个2n是什么意思?

假如有4个数。那每个数有两个情况一个进栈和出栈两种状态。那就一共有8种状态

如果有n个数就有2n种状态。

\textrm{C}_{2n}^{n}上面那个n是什么意思?

栈进栈再出栈。假如将进栈标记为1。将出栈标记为-1。出栈和进栈是要平衡的和要为0所以代表n个数里面有几种进栈的状态4个数的话就会有4种进栈的状态。

为什么都是在表示状态中有几个进栈1不去表现出栈?

因为一定要进栈了才能去出栈

为什么要减去\textrm{C}_{2n}^{n+1}这个?

这两种情况显然也满足进栈的1和出栈的-1相等。但是增加一个元素。那栈中就只有一个元素显然不能去给他出栈两个元素。

那如何去标记这类情况?

假如我想知道12的因数那知道我如果有一个因数是2我就知道另一个因数是6。知道一个因数是3那另一个因数4也就找到了。知道一个12就知道另一个是1

通过这样最小不成立的前缀取反得的的状态是一一对应的。那我只要知道这些不成立的个数就可以了。那我可以看到取反后的状态假如是4个数。那其中1的状态就会有5种。这样我们就找到一个规律了。

那n个数里面1也就是进栈的状态就会多一个有n+1个。那我们就需要将这些状态全部减掉。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值