| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 442 人关注过本帖
标题:关于栈的一个问题
只看楼主 加入收藏
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
结帖率:78.57%
收藏
已结贴  问题点数:30 回复次数:5 
关于栈的一个问题
已知1234567这七个数依次进栈,每个数进栈后可停留,可立即出栈,最后都必须出栈,问共有多少情况?
搜索更多相关主题的帖子: 多少 1234567 
2012-12-21 21:37
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:0 
回复 楼主 a151141
我没弄清楚,到底要测试什么?

要说:依次进栈7个数,必须全部出栈,那么出栈也是7个数啊。。。
2012-12-22 12:45
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:20 
结果就是Catalan数,具体怎么算,你baidu一下Catalan数就知道了

下面内容from 百度百科的一段:

问题的由来:编号为 1 到 n 的 n 个元素,顺序的进入一个栈,则可能的出栈序列有多少种?   

对问题的转化与思考:n 个元素进栈和出栈,总共要经历 n 次进栈和 n 次出栈。这就相当于对这 2n 步操作进行排列。   
一个模型:一个 n*n 的正方形网格,从左上角顶点到右下角顶点,只能向右走和向下走。问共有多少种走法。

如果将向右走对应上述问题的出栈,向下走对应上述问题的进栈,那么,可 以视此模型为对上述问题的具体描述。而解决此问题,只要在总共从左上角到右下角的2n步中,选定向右走的步数,即共有C(n 2n)中走法。
   但是存在一个问题,如果走法越过了对角线,那么对应到上述问题是出栈数比入栈数多,这是不符合实际的。
   对以上模型进行处理,对角线将以上正方形网格分成两部分,只留下包含对角线在内的下半部分,那么就不会出现越过对角线的问题。而这问题就是开始提出的问题。
   -------------------------------------------------------
   问题等价于:n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有多少?
   解答: 设P2n为这样所得的数的个数。在2n位上填入n个1的方案数为 C(n 2n)
   不填1的其余n位自动填以数0。从C(n 2n)中减去不符合要求的方案数即为所求。
   不合要求的数指的是从左而右扫描,出现0的累计数超过1的累计数的数。
   不合要求的数的特征是从左而右扫描时,必然在某一奇数2m+1位上首先出现m+1个0的累计数,和m个1的累计数。
   此 后的2(n-m)-1位上有n-m个1,n-m-1个0。如若把后面这部分2(n-m)-1位,0与1交换,使之成为n-m个0,n-m-1个1,结果得 1个由n+1个0和n-1个1组成的2n位数,即一个不合要求的数对应于一个由n-1个1和n+1个0组成的一个排列。
   反过来,任何一个 由n+1个0,n-1个1组成的2n位数,由于0的个数多2个,2n是偶数,故必在某一个奇数位上出现0的累计数超过1的累计数。同样在后面的部分,令0 和1互换,使之成为由n个0和n个1组成的2n位数。即n+1个0和n-1个1组成的2n位数,必对应于一个不合要求的数。
   用上述方法建立了由n+1个0和n-1个1组成的2n位数,与由n个0和n个1组成的2n位数中从左向右扫描出现0的累计数超过1的累计数的数一一对应。
   例如 10100101
   是由4个0和4个1组成的8位2进制数。但从左而右扫描在第5位(显示为红色)出现0的累计数3超过1的累计数2,它对应于由3个1,5个0组成的10100010。
   反过来 10100010   对应于 10100101
   因而不合要求的2n位数与n+1个0,n-1个1组成的排列一一对应,故有
   P2n = C(n 2n)— C(n+1 2n)

   这个结果是一个“卡塔兰数”Catalan

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-22 12:56
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:0 
回复 2楼 crystall
是啊,就是问有多少种情况

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2012-12-22 17:15
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
网上有很多相关代码的

7个元素的话,429种


[fly]存在即是合理[/fly]
2012-12-22 19:41
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
http://aodag.

                                         
===========深入<----------------->浅出============
2012-12-22 20:02
快速回复:关于栈的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019204 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved