• 卡特兰数(Catalan)公式、证明、代码、典例


    大佬博客:传送门

    组合数公式:

     一、关于卡特兰数

           卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...

          二、卡特兰数的一般公式

          卡特兰数满足以下性质:

          令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)=c(2n,n)-c(2n,n+1)(n=0,1,2,...)。这个公式还可以更简单得化为h(n)=C(2n,n)/(n+1)。后一个公式都可以通过前一个公式经过几步简单的演算得来,大家可以拿起笔试试,一两分钟就可以搞定。

     

    1. 出栈次序

    2. 01序列

    3. ‘+1’ ‘-1’序列

    4. 括号序列

    5. 找零问题

    6. 矩阵链乘

    7. 二叉树计数

    8. 凸多边形划分

    9. 圆上n条线段

    10. 单调路径

    11. 填充阶梯图形

    12. 摞碗问题

    13. 汽车胡同加油问题

    14. 还书借书问题

    15. 高矮排队问题

    典例:

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

    2. 01序列
    给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数, 有多少个不同的01序列?
    以下为长度为6的序列:
    111000 101100 101010 110010 110100

    3. ‘+1’ ‘-1’序列

    n个+1和n个-1构成的2n项 a1,a2,⋅⋅⋅,a2na1​,a2​,⋅⋅⋅,a2n​,其部分和满足非负性质,即a1+a2+⋅⋅⋅+ak>=0a1​+a2​+⋅⋅⋅+ak​>=0,(k=1,2,···,2n) ,有多少个不同的此序列?

    4. 括号序列

    n对括号有多少种匹配方式?

    5. 找零问题

    2n个人要买票价为五元的电影票,每人只买一张,但是售票员没有钱找零。其中,n个人持有五元,另外n个人持有十元,问在不发生找零困难的情况下,有多少种排队方法?

    6. 矩阵链乘

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

    7. 二叉树计数

    有n个节点构成的二叉树(非叶子节点都有2个儿子),共有多少种情形?
    有n+1个叶子的二叉树的个数?

    8. 凸多边形划分

    在一个n边形中,通过不相交于n边形内部的对角线,把n边形拆分为若干个三角形,问有多少种拆分方案?


    9. 圆上n条线段

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

    10. 单调路径

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

    11. 填充阶梯图形

    用n个长方形填充一个高度为n的阶梯状图形的方法个数?

    12. 摞碗问题

    饭后,姐姐洗碗,妹妹把姐姐洗过的碗一个一个放进碗橱摞成一摞。一共有n个不同的碗,洗前也是摞成一摞的,也许因为小妹贪玩而使碗拿进碗橱不及时,姐姐则把洗过的碗摞在旁边,问:小妹摞起的碗有多少种可能的方式?

    13. 汽车胡同加油问题

    一个汽车队在狭窄的路面上行驶,不得超车,但可以进入一个死胡同去加油,然后再插队行驶,共有n辆汽车,问共有多少种不同的方式使得车队开出城去?

    14. 还书借书问题

    在图书馆一共2n个人在排队,n个还《面试宝典》一书,n个在借《面试宝典》一书,图书馆此时没有了面试宝典了,求他们排队的总数

    15. 高矮排队问题

    2n个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

  • 相关阅读:
    火狐黑客插件
    使用POI对EXCEL 读入写出
    使用spring quartz实现定时任务
    toad for oracle 快捷键总结
    Oracle查询性能优化
    2.C语言中文网学习Python
    1.编程基础(C语言中文网)
    一键打开ASP.NET WEB网站项目
    解决VS2010无法添加Sql Server数据库的问题
    VS2010 的一个小Bug(已报告给Microsoft Connect并得到确认)
  • 原文地址:https://www.cnblogs.com/nlyzl/p/11564195.html
Copyright © 2020-2023  润新知