在计算机中,常常都是在栈这个问题碰到的。即出栈次序问题:
一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
数学上的计算公式为:
s= C ( 2 n , n ) n + 1 \frac{C(2n,n)}{n+1} n+1C(2n,n),其中C为组合数。
C
(
8
,
4
)
5
=
14
\frac{C(8,4)}{5}=14
5C(8,4)=14,因此总共有14种。
使用程序打印出14种出栈序列如下: