做初赛题,回顾到以前学的一些知识,发现还有其他广泛的应用,所以在此记录并当作复习,若有不当之处,随时欢迎读者斧正。
Catalan
卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名
原理(摘自百度百科)
设h(n)为Catalan数的第n+1项,令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(2)=h(0)h(1)+h(1)h(0)=11+11=2
\quad\quad h(3)=h(0)h(2)+h(1)h(1)+h(2)h(0)=12+11+21=5
另类递推式:
\quad\quad h(n)=h(n-1)(4n-2)/(n+1)
递推关系的解为:
\quad\quad h(n)=C(2n,n)/(n+1) (n=0,1,2,…)
递推关系的另类解为:
\quad\quad h(n)=C(2n,n)-C(2n,n-1)(n=0,1,2,…)
应用
(1)凸n边形的三角划分方案数
笔者第一次接触卡特兰数是一道关于凸多边形的三角形划分问题,题目很容易懂:给出一个凸n边形,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。输入n,求不同划分的方案数f(n)
我初次尝试时,试着找规律,结果花式凉凉 ,老师第一次讲,听得云里雾里,回顾几次后,到觉得有点意思。
现在,读者请见下图:
一个凸n边形,两处标有省略号的地方表示省略的边,即顶点2到顶点i之间还有 i-2+1 条边,另一处同理。现在如果不知道卡特兰数的同学是不是无从下手,别慌,问题不大。因为凸n边形的任意一条边必定属于某一个三角形,所以我们以某一条边为基准,此图以顶点1和顶点n为基准。我们任意取一个点i使得1,n, i构成一个三角形,连接1-i,n-i.
见下图:
如图所示,凸n变形变为了一个由一个三角形,一个凸i变形和一个凸n-i+1边形,构成的图形,即题目中的定义,则此时凸n边形的不同划分方案数就根据乘法原理,由凸i变形和凸n-i边形决定,即 f ( i ) × f [ n − i + 1 ] f(i)\times f[n-i+1] f(i)×f[n−i+1],在考虑,如果我不取点i为与点1和点n构成三角形,那么i+1呢?i+2呢? ⋅ ⋅ ⋅ ··· ⋅⋅⋅,选取不同的点之后便会有 f ( i + 1 ) × f [ n − ( i + 1 ) + 1 ] , f(i+1)\times f[n-(i+1)+1], f(i+1)×f[n−(i+1)+1], f ( i + 2 ) × f [ n − ( i + 2 ) + 1 ] ⋅ ⋅ ⋅ \,\,f(i+2)\times f[n-(i+2)+1]··· f(i