卡特兰数公式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37895339/article/details/79769640

公式一

C 2 n n C 2 n n + 1 = C 2 n n n + 1 C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

题目一

假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n=1时,()是合法的,)(不合法。
分析:n对括号的排列共有 C 2 n n C_{2n}^n 种,错误的排列共有 C 2 n n + 1 C_{2n}^{n+1} C 2 n n 1 C_{2n}^{n-1} 种。最终结果为
C 2 n n C 2 n n + 1 = C 2 n n n + 1 C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

题目二

n个数进出栈的顺序有多少种?
分析:出栈的时候栈里必须有数,因此与题目一相同。
C 2 n n C 2 n n + 1 = C 2 n n n + 1 C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}

题目三

2n个人排队买票,n个人拿5元钱,n个人拿10元钱,票价是5元一张,每个人买一张票,售票员手中没有零钱,问有多少种排队方法让售票员可以顺利卖票?
分析:卖票的过程中必须要有5元在,因此5元可以看成左括号,10元看成右括号,与题目一相同。

公式二

f ( n ) = f ( 0 ) f ( n 1 ) + f ( 1 ) f ( n 2 ) + f ( 2 ) f ( n 3 ) + + f ( n 1 ) f ( 0 ) = C 2 n n n + 1 \begin{aligned} f(n) &= f(0)*f(n-1) +f(1)*f(n-2)+f(2)*f(n-3)+\ldots+f(n-1)*f(0)\\ &=\frac{C_{2n}^n}{n+1} \end{aligned}

题目四

求n个无差别的节点构成的二叉树有多少种不同的结构。
分析:假设n个无差别的节点构成的不同结构树为 f ( n ) f(n)
f ( 0 ) f(0) 表示空树,所以规定只有1种结构。
将n个节点排成一排,如果把第1个节点当做头剩余节点就是右子树那么共有 f ( 0 ) f ( n 1 ) f(0)f(n-1) 种排列。
如果把第2个节点当做头,第1个节点为左子树,第3个节点及以后为右子树,那么共有 f ( 1 ) f ( n 2 ) f(1)f(n-2) 中排列,以此类推,直到 f ( n 1 ) f ( 0 ) f(n-1)f(0)
假设 f ( 0 ) = 1 , f ( 1 ) = 1 , f ( 2 ) = 2 , f ( 3 ) = 5 f(0)=1,f(1)=1,f(2)=2,f(3)=5
f ( n ) = f ( 0 ) f ( n 1 ) + f ( 1 ) f ( n 2 ) + f ( 2 ) f ( n 3 ) + + f ( n 1 ) f ( 0 ) = C 2 n n n + 1 \begin{aligned} f(n) &= f(0)*f(n-1) +f(1)*f(n-2)+f(2)*f(n-3)+\ldots+f(n-1)*f(0)\\ &=\frac{C_{2n}^n}{n+1} \end{aligned}

题目五

12个高矮不同的人,拍成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人要高,问排列方式有多少种?
分析:假设第一排的人编号为0,第二排的人编号为1。
如果为000011010111,则前4个人在第一排,第5,6个人在第二排,第7个人在第一排,第8个人在第二排,第9个人在第一排,第10,11,12人在第二排。
如果有前缀1比0多的话,说明必然会出现不合法的情况。题目变为任意前缀不能出现1比0多的情况,所以与题目一相同。

猜你喜欢

转载自blog.csdn.net/weixin_37895339/article/details/79769640