美文网首页
Catalan数

Catalan数

作者: 乘瓠散人 | 来源:发表于2017-12-03 18:22 被阅读22次

卡特兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。其前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012......
Catalan数满足以下性质:
令h(0)=1,h(1)=1,Catalan数满足递推式:
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
另类递推式:
h(n)=h(n-1)*(4*n-2)/(n+1)
当然,上面的递推公式太繁琐了,于是数学家们求出了递推关系的解的通项公式:
h(n)=C(2n,n)-C(2n,n-1)(n=0,1,2,...)
可以化简为 h(n)=C(2n,n)/(n+1) (n=0,1,2,...)

应用:

  1. 矩阵连乘,求括号化的方案有几种?
  2. 出栈次序,求一个进栈序列1~n有几种不同的出栈序列?
    假设序数k是最后一个出栈的数,比k早进栈早出栈的有k-1个数,共有h(k-1)中方案;比k晚进栈早出栈的有n-k个数,共有h(n-k)中方案。由于比k先进栈和比k后进栈的情况是相互独立的,所以可用乘法定理,共有h(n-k)*h(k-1)中,求和便得到卡特兰递推式。

另类分析:
对于每个数来说,必须进栈一次,出栈一次。设进栈状态为1,出栈状态为0,n个数的所有状态对应n个1和n个0组成的2n位二进制数。故序列的总数目=从左到右扫描由n个1和n个0组成的2n位二进制数,1的累计数大于等于0的累计数的方案种数。在2n位二进制数中填入n个1的方案数为c(2n,n),不填1的其余n位自动填0。从中减去不符合要求(由左而右扫描,0的累计数大于1的累计数)的方案数即为所求:不符合要求的数的特征是由左而右扫描时,必然在某一奇数位2m+1位上首先出现m+1个0的累计数和m个1的累计数,此后的2(n-m)-1位上有n-m个 1和n-m-1个0。如若把后面这2(n-m)-1位上的0和1互换,使之成为n-m个0和n-m-1个1,结果得1个由n+1个0和n-1个1组成的2n位数,即一个不合要求的数对应于一个由n+1个0和n-1个1组成的排列。
显然,不符合要求的方案数为c(2n,n+1)。由此得出输出序列的总数目=c(2n,n)-c(2n,n+1)=c(2n,n)/(n+1)=h(n)

类似问题: 买零找零
有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)

  1. 凸多边形三角划分
    在凸n边形上任选一个顶点k,则该点处可分割成凸k边形和凸n-k+1边形,故凸n边形的划分数f(n)为求和f(k)*f(n-k+1) (2<=k<=n-1),即f(n) = f(2)f(n-2+1) + f(3)f(n-3+1) + ...+ f(n-1)f(2) , 故f(n) = h(n-2) (n=2,3,4...) 向右平移2个单位。
    image.png
  1. 给定n个节点,能构成多少种不同的二叉搜索树?
    假设采用中序遍历,根节点第k个被访问到,则根节点的左子树有k-1个节点,根节点的右子树有n-k个节点。k的取值为1到n.
  2. n对括号正确匹配数目
    给定n对括号,求括号正确匹配的形式有多少种?
    0对括号:[空序列] 1种可能
    1对括号:() 1种可能
    2对括号:()() (()) 2种可能
    3对括号:((())) ()(()) ()()() (())() (()()) 5种可能

相关文章

  • Catalan数

    卡特兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。其前几项为 : 1...

  • 卡特兰数(Catalan number)

    catalan介绍    Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题...

  • 卡特兰数(Catalan number)

    定义 1.卡特兰数是一种数列,以比利时的数学家欧仁·查理·卡塔兰命名。2.卡特兰数列:1, 1, 2, 5, 14...

  • 组合数学-Catalan数

    从这节开始,我们遇到的组合数可能会比较大,大到long long存不下,那怎么办?c++大数板子欢迎你...c++...

  • 数学 | 卡特兰数

    卡特兰数 定义 卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出...

  • [Combinatorial] 5 神奇的序列

    5-1 Catalan数 5-2 指数型母函数 5-3 错排问题 5-4 Stirling数 今天有谷歌的空宣,所...

  • 【卡塔兰数】假定有A,B,C,D依次进栈,进栈过程中允许出栈,写

    母题:N个数依次入栈,出栈顺序有多少种? 答案:Catalan number 卡塔兰数 常规分析 首先,我们设f(...

  • 转载:卡特兰数

    Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了...

  • lintcode-不同的二叉查找树

    卡特兰数Catalan数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (...

  • Catalan数列

    Catalan数列给定n个0和n个1,它们按照某种顺序排列成长度为2n的序列,满足任意前缀和中0的个数都不少于1的...

网友评论

      本文标题:Catalan数

      本文链接:https://www.haomeiwen.com/subject/frzabxtx.html