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

Catalan数

时间:2019-03-08 00:32:22      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:mpeg   through   line   可以转化   位置   分析   匹配   理解   nbsp   

关于递推式:(用括号序列来理解)

n对括号相当于有2n个符号,n个左括号、n个右括号,可以设问题的解为f(2n)。第0个符号肯定为左括号,与之匹配的右括号必须为第2i+1字符。因为如果是第2i个字符,那么第0个字符与第2i个字符间包含奇数个字符,而奇数个字符是无法构成匹配的。

       通过简单分析,f(2n)可以转化如下的递推式 f(2n) = f(0)*f(2n-2) + f(2)*f(2n - 4) + ... + f(2n - 4)*f(2) + f(2n-2)*f(0)。简单解释一下,f(0) * f(2n-2)表示第0个字符与第1个字符匹配,同时剩余字符分成两个部分,一部分为0个字符,另一部分为2n-2个字符,然后对这两部分求解。f(2)*f(2n-4)表示第0个字符与第3个字符匹配,同时剩余字符分成两个部分,一部分为2个字符,另一部分为2n-4个字符。依次类推。

       假设f(0) = 1,计算一下开始几项,f(2) = 1, f(4) = 2, f(6) = 5。结合递归式,不难发现f(2n) 等于h(n)。

关于组合公式:(仍用括号序列来理解)

https://blog.csdn.net/ffmpeg4976/article/details/42340379

对于其全排列,可以看做是2n个空,将n个 ( 放入其中任意n个空中,剩余的位置由 )
填充,显然其全排列的个数为 C(n,2n)
在全排列中,包含一部分非法的排列,我们从中减去非法的排列个数
所以有 catalan(n):C(n,2n)-C(n+1,2n)

相当于给了一个a的序列,an=a[n]指的是到第n个
共有C(n+1,2n)种非法序列:,每一个n个1,n个-1的情况下的非法排列也会对应一个n+1个1,n-1个-1的排列。

应用:

http://blog.sina.com.cn/s/blog_6aefe4250101asv5.html

https://blog.csdn.net/wuzhekai1985/article/details/6764858

(深夜写博爆肝啊)

Catalan数

标签:mpeg   through   line   可以转化   位置   分析   匹配   理解   nbsp   

原文地址:https://www.cnblogs.com/lkx422/p/10493498.html

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