您的位置:首页 > 其它

数学之美——组合小事(今天看到的一个简单的组合学应用,但是觉得挺有意思的)

2011-10-20 22:48 253 查看
问题引出:

求教 n个整数依次进栈,问有多少种出栈序列。

回答

C(2n, n)-C(2n, n – 1)

解析

N个元素进栈和出栈,共有n次进栈(记为0)和n次出栈(记为1),结果为一个01串。题目意思就是求有多少种长度为2n的合法01串。这里合法的意思是当前1的累计个数不能超过0的累计个数。答案是从C(2n, n)中减去不合法的数目。不合法的必然在某一奇数位2m + 1上首次出现m + 1个1的累计数和m个0的累计数。此后的2(n - m)
- 1位有n - m - 1个1和n - m个0。若把后面这2(n - m) - 1位,01互换,结果为由n + 1个1和n - 1个0组成的01串,即不合法01串对应于一个由n + 1个1和n - 1个0组成的01串。反之,任何一个由n + 1个1和n - 1个0组成的01串,由于1的个数比0的个数多2个,2n为偶数,故必在某一奇数为上出现1的累计个数超过0的累计个数,同样地,在后面把01互换,使之成为n个0和n个1的01串,即n+1个1和n-1个0组成的01串对应于一个不合法01串。故两者是一一对应的。故不合法的数目为C(2n,
n – 1)
注:以上解答非原创,是在一个考研论坛上看到的,觉得解析得非常精辟,同时第二次搜索时,找了好大半天才找到这个解答,故保存下来。将作者的思维弘扬光大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐