大佬博客:传送门
组合数公式:
一、关于卡特兰数
卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 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个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?