zoukankan      html  css  js  c++  java
  • 卡特兰数(网上集合)

    卡特兰数:

    1 通项公式:h(n)=C(n,2n)/(n+1)=(2n)!/((n!)*(n+1)!)

    2递推公式:h(n)=((4*n-2)/(n+1))*h(n-1); h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)*h(0).

    3前几项为:h(0)=1,h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,......

    4应用场景:

    a.括号化问题。
      矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)
    b.出栈次序问题。
      一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
      类似:
      (1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人

          买 票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
      (2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。

    c.将多边行划分为三角形问题。
      (1)将一个凸多边形区域分成三角形区域的方法数?


      (2)类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那            么有多少条可能的道路?


      (3)类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?

                         圆桌周围有 2n个人,他们两两握手,但没有交叉的方案数。

    d.给顶节点组成二叉树的问题。
      给定N个节点,能构成多少种形状不同的二叉树?
      (一定是二叉树!先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是

          h(0)*h(n-1) + h(2)*h(n-2) +  + h(n-1)h(0)=h(n))(能构成h(N)个)。

    • Cn表示用n个长方形填充一个高度为n的阶梯状图形的方法个数。下图为 n = 4的情况:

                                                                                              

  • 相关阅读:
    nginx 反向代理 apache 服务
    IIS 设置404页面 显示系统找不到指定的文件
    centos6.6 下 安装 nginx
    sql优化建议
    php的静态化
    vsftp上传文件出现553 Could not create file
    php安装libevent扩展
    discuz回贴通知插件实现-显示用户状态设置
    discuz回贴通知插件实现-插件的多语言
    discuz回贴通知插件实现-插件后台管理配置
  • 原文地址:https://www.cnblogs.com/simplekinght/p/7086704.html
Copyright © 2011-2022 走看看