公式一
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} C2nn−C2nn+1=n+1C2nn
题目一
假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n=1时,()是合法的,)(不合法。
分析:n对括号的排列共有
C
2
n
n
C_{2n}^n
C2nn种,错误的排列共有
C
2
n
n
+
1
C_{2n}^{n+1}
C2nn+1或
C
2
n
n
−
1
C_{2n}^{n-1}
C2nn−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}
C2nn−C2nn+1=n+1C2nn
题目二
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}
C2nn−C2nn+1=n+1C2nn
题目三
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} f(n)=f(0)∗f(n−1)+f(1)∗f(n−2)+f(2)∗f(n−3)+…+f(n−1)∗f(0)=n+1C2nn
题目四
求n个无差别的节点构成的二叉树有多少种不同的结构。
分析:假设n个无差别的节点构成的不同结构树为
f
(
n
)
f(n)
f(n)
f
(
0
)
f(0)
f(0)表示空树,所以规定只有1种结构。
将n个节点排成一排,如果把第1个节点当做头剩余节点就是右子树那么共有
f
(
0
)
f
(
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(1)f(n−2)中排列,以此类推,直到
f
(
n
−
1
)
f
(
0
)
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(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}
f(n)=f(0)∗f(n−1)+f(1)∗f(n−2)+f(2)∗f(n−3)+…+f(n−1)∗f(0)=n+1C2nn
题目五
12个高矮不同的人,拍成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人要高,问排列方式有多少种?
分析:假设第一排的人编号为0,第二排的人编号为1。
如果为000011010111,则前4个人在第一排,第5,6个人在第二排,第7个人在第一排,第8个人在第二排,第9个人在第一排,第10,11,12人在第二排。
如果有前缀1比0多的话,说明必然会出现不合法的情况。题目变为任意前缀不能出现1比0多的情况,所以与题目一相同。