近期几篇可能偏随笔性质,希望能尽快进入专题性质的博文。
Catalan数主要是用于组合数学中,有两种操作,而且这两种操作的操作数量相同,N个操作一前要有N-1次操作二。其实Catalan数就是个具有一定几何意义的数列。
卡塔兰数列的前几项为
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。
因Catalan数比较大,所以多和高精度配合,据说一般第35项就超过了长整型。
递推式:
令h(0)=1,h(1)=1,h(n)= h(0)*h(n-1) + h(1)*h(n-2) + … + h(n-1)h(0) (其中n>=2),这是n阶递推关系;该递推式是由分治的思想所得的,将个大问题的组合划分为h(0)和h(n-1),h(1)和h(n-2)等情况可得
通过化简后可得1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1) h(0)=1
该递推关系的解为:h(n)=C(2n,n)/(n+1)
经典问题:
- 进栈出栈,出栈的次序有多少种?
- 左括号右括号,括号合法化方案有多少种?
- 构成二叉树有多少种?
- 凸多边形划分三角形有多少种?
- 圆连线,线不交叉有多少种?
本文以圆连线,不交叉为例(Game of Connections)
该题可当成括号合法化方案去想,就没有线的当“(”,线连接的当“)”。