Catalan数总结

参考维基百科 Catalan数详解
这里只是把常见的公式搬过来

设Catalan数的第n项为 hn,定义 h0=h1=1 则有如下两个常用递推式

hn=h0hn1+h1hn2+...+hn1h0,n>=2

hn=4n2n+1hn1,n>=1

通项公式为

hn=C2nnn+1,n>=0
hn=C2nnC2nn1,n>=0

//Catalan数的前30项
h[0] = 1
h[1] = 1
h[2] = 2
h[3] = 5
h[4] = 14
h[5] = 42
h[6] = 132
h[7] = 429
h[8] = 1430
h[9] = 4862
h[10] = 16796
h[11] = 58786
h[12] = 208012
h[13] = 742900
h[14] = 2674440
h[15] = 9694845
h[16] = 35357670
h[17] = 129644790
h[18] = 477638700
h[19] = 1767263190
h[20] = 6564120420
h[21] = 24466267020
h[22] = 91482563640
h[23] = 343059613650
h[24] = 1289904147324
h[25] = 4861946401452
h[26] = 18367353072152
h[27] = 69533550916004
h[28] = 263747951750360
h[29] = 1002242216651368
h[30] = 3814986502092304

典型的应用问题

  • 矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?
  • 出栈次序问题,一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
  • 将一个凸多边形区域分成三角形区域的方法数?
  • 给定N个节点,能构成多少种形状不同的二叉树?
  • ……
posted @ 2018-08-23 13:30  不想吃WA的咸鱼  阅读(134)  评论(0编辑  收藏  举报