n个元素进栈,有几种出栈方式

本文探讨了n个元素的出栈序列问题,揭示其与卡特兰数的联系。通过递推公式和几何解释,阐述了如何计算不同出栈方式的数量,并给出了通项公式C(2n,n)/(n+1)。" 19036717,921015,Gleed2D在Cocos2d-x中的应用:2D关卡编辑与加载,"['Cocos2d-x', '关卡编辑', '地图制作', '游戏开发', '开源工具']
摘要由CSDN通过智能技术生成

1. 饭后,姐姐洗碗,妹妹把姐姐洗过的碗一个一个地放进碗橱摞成一摞。一共有n个不同的碗,洗前也是摞成一摞的,也许因为小妹贪玩而使碗拿进碗橱不及时,姐姐则把洗过的碗摞在旁边,问:小妹摞起的碗有多少种可能的方式?

2. 给定n个数,有多少种出栈序列?

3. 一个有n个1和n个-1组成的字串,且前k个数的和均不小于0,那这种字串的总数为多少?

这三个问题具有相同的结构,三个问题是可以互相转化。将姐姐放碗看做入栈操作,将妹妹放碗看做出栈操作。则问题一变为问题二。将入栈操作记为1,出栈记为-1,问题2变为问题3。

问题的答案是一个著名的数列,卡特兰数。该问题的代数解法比较抽象,而运用到几何上,用图片来描述,却有让人恍然大悟的感觉。

一、递推

我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出:

                                     f(1) = 1     //即 1

                                     f(2) = 2    //即 12、21

                                     f(3) = 5     //即 123、132、213、321、231

然后我们来考虑f(4), 我们给4个元素编号为a,b,c,d, 那么考虑:元素a只可能出现在1号位置,2号位置,3号位置和4号位置

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值