码迷,mamicode.com
首页 > 其他好文 > 详细

卡特兰数通项公式在TAOCP里的推导

时间:2014-10-03 22:31:45      阅读:900      评论:0      收藏:0      [点我收藏+]

标签:http   ar   div   2014   问题   c   on   r   ef   

卡特兰数的一般项公式为:

bubuko.com,布布扣
bubuko.com,布布扣

至于怎么推导,《计算机程序设计艺术(卷一)》2.2.1节习题4的解答提到的精彩解法“反射原理”,下面是对其的概括:三国真人娱乐城

问题大意是用S表示入栈,X表示出栈,那么合法的序列有多少个(S的个数为n)。

显然有c(2n, n)个含S,X各n个的序列,剩下的是计算不允许的序列数(它包含正确个数的S和X,但是违背其它条件)。

在任何不允许的序列中,定出使得X的个数超过S的个数的第一个X的位置。然后在导致并包括这个X的部分序列中,以S代替所有的X并以X代表所有的S。结果是一个有(n+1)个S和(n-1)个X的序列。反过来,对一垢一种类型的每个序列,我们都能逆转这个过程,而且找出导致它的前一种类型的不允许序列。例如XXSXSSSXXSSS必然来自SSXSXXXXXSSS。这个对应说明,不允许的序列的个数是c(2n, n-1),因此an = c(2n, n) - c(2n, n-1)。

具体可以看看TAOCP的原练习题:

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣

这里翻书确认了一下Knuth援引的卡特兰数通项的证明方法,有兴趣可以自己研究一下。

卡特兰数通项公式在TAOCP里的推导

标签:http   ar   div   2014   问题   c   on   r   ef   

原文地址:http://www.cnblogs.com/laoyangman/p/4005250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!