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

问题引出:

求教 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)

 

注:以上解答非原创,是在一个考研论坛上看到的,觉得解析得非常精辟,同时第二次搜索时,找了好大半天才找到这个解答,故保存下来。将作者的思维弘扬光大吐舌头
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值