出栈序列之catalan数

曾经以为只要有兴趣支撑自己就不会放弃算法的学习,不会停止编程,现在才发现,没有目标的鞭策,兴趣也显得那么苍白无力。直到最近要准备考研专业课的复习,才又开始重新接触,才发现即使是之前学过的,也要重新拾起。废话到此为止,来说一下n个元素出栈序列数的推导。

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

其实只要知道catalan数的定义:

就可以很快想到结果就是第n个catalan

因为n 个元素进栈和出栈,总共要经历 n 次进栈和 n 次出栈。这就相当于对这 2n 步操作进行排列。而的进栈次数一定要大于等于出栈的次数,所以只要把进栈看做是+1出栈看做是-1,就是上面的定理了。下面贴出组合数学(Richard.A.Bruadli)关于这个定理的证明:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值