zoukankan      html  css  js  c++  java
  • 卡塔兰数


    一、定义和公式:
    ----------------------------------------------------------------------------------------
    令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)/(n+1) (n=0,1,2,...)**

    递推关系的另类解为:

    **h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)**


    二、具体问题:
    ----------------------------------------------------------------------------------------------------------------------------------
    1.对于在n位的2进制中,有m个0,其余为1的catalan数为:C(n,m)-C(n,m-1)

    2.矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)

    3.一个栈(无穷大)的[进栈] 序列为1,2,3,…,n,有多少个不同的出栈序列?

    4.在一个[凸多边形] 中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)=h(n-2) (n是边数,边数大于3)

    5.给定N个[节点] ,能构成多少种不同的[二叉搜索树]
    (能构成h(N)个)

    6.给定n对括号,求括号正确配对的字符串数,例如:
    0对括号:[空序列] 1种可能
    1对括号:() 1种可能
    2对括号:()() (()) 2种可能
    3对括号:((())) ()(()) ()()() (())() (()()) 5种可能
    那么问题来了,n对括号有多少种正确配对的可能呢?
    h(n)

    7.有n个1和m个-1(n>=m),共n+m个数排成一列,满足对所有0<=k<=n+m的前k个数的部分和Sk >= 0的排列数?
    C (n+m, m) - C (n+m, m-1)

  • 相关阅读:
    Spring Cloud 入门教程6、Hystrix Dashboard监控数据聚合(Turbine)
    Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard
    Spring Cloud 入门教程4、服务容错保护:断路器(Hystrix)
    Spring Cloud 入门教程3、服务消费者(Feign)
    JS==和===总结
    怀疑与批判
    Java多线程速记手册
    编译原理
    C系、Java、JavaScript、C#、PHP、Swift基本语法对比
    单例模式番外篇
  • 原文地址:https://www.cnblogs.com/JJsnow/p/9968793.html
Copyright © 2011-2022 走看看