出栈序列之catalan数

来源:互联网 发布:淘宝药店的药可信吗 编辑:程序博客网 时间:2024/04/28 16:15

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

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

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

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

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

 

原创粉丝点击