浅谈卡特兰数
本篇随笔浅谈一下数学中的卡特兰数。
卡特兰数博大精深,由于博主时间、精力、水平都非常非常有限,所以只挑干货讲。
引入:
给定(n)个0,(n)个1,按某种顺序排成长度为(2n)的序列,求满足任意前缀中0的个数不少于1的个数的序列的数量。
答案即卡特兰数。
设第(i)项卡特兰数为(Cat_i),其通项公式为:
[Cat_n=frac{C_{2n}^{n}}{n+1}
]
常用的卡特兰数公式
抄公式啦!
[Cat_n=frac{C_{2n}^{n}}{n+1}
]
[Cat_n=C_{2n}^{n}-C_{2n}^{n-1}
]
[Cat_n=sum_{i=0}^{n-1}Cat_i imes Cat_{n-1-i}
]
[Cat_n=Cat_{n-1} imes frac{4n-2}{n+1}
]
卡特兰数的一些常见应用
比如引入。
(n)个0,(n)个1,组成的(2n)的序列,对于每个前缀都有0的个数不小于1的个数的序列个数。
同理,括号匹配也可以用这个东西。就把0变成左括号,1变成右括号即可。
也就是,(n)个左右括号组成的合法括号序列数量为(Cat_n)。
1-n经过一个栈,形成的合法出栈序列数量为(Cat_n)。
n个节点构成的不同二叉树数量为(Cat_n)。
在平面直角坐标系中,每一步只能向上走或者向右走,从((0,0))走到((n,m))并且除了两个端点外不接触(y=x)的路线数量为(2Cat_{n-1})。