卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。
除去一般的公式,卡诺兰数还有一些其他的等价表达形式。
卡诺兰数的应用
组合数学中,有非常多的组合结构可以用卡诺兰数来计数:
- 有n个左括号
(
和n个右括号)
,随意排列组合,共有多少种合法表达式。 - 对于一个栈而言,有n次进栈和n次出栈,随意排列组合,共有多少种合法的出入栈的形式。
- ……
相关证明
针对上述问题为何满足卡诺兰数,给出如下证明:
令1表示入栈,0表示出栈,则共有C(2n,n)种排列方式。把出入栈按顺序一一写出,可表示为一个二进制数。但其中有一些是不合法的,下面要减去不合法的个数。
若某一种方式不合法,则在某个数2m+1处,会有m+1个0和m个1。把2m+2及其之后所有的数逐位取反,则会得到一个有着n+1个0和n-1个1的
二进制数,反之亦然。
因为在2m+1之前,无论是C(n,2n)中不合法的形式还是C(n-1,2n)都是m+1个0和m个1的全排,而2m+1之后取反是一个一一对应的操作,取反操作完之后二者又是相同的。所以这两种情况的是一一对应的,那么减去不合法的数的个数即是减去C(n,n+1)的个数。得到公式:
C(n,2n)-C(n+1,2n)
恰好与卡诺兰数的一种表达形式相同,故得证。