有这样的一个数列:1, 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, ...  数字递增十分快,所以让我们想到排列组合。这是一个卡特兰数列。百度百科

这个数列就是对角线上的数字。它的公式

C(n) = C(0)C(n-1) + C(1)(n-2) + ... + C(n-1)C(0) = Com(2n,n)/(n+1) = P(2n,n)/(n!(n+1)) = (2n)!/(n!*(n+1)!)

它的应用很广。

  • 出栈次序 一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
  • n个不同数字组成二叉搜索树的可能性
  • 矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案
  • 有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少种方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
  • n对括号正确匹配数目
  • 求凸边形进行三角剖分的不同方案数

 

更多参考:

发表评论