题目:现在有A、B、C、D四个元素,只能按照ABCD的顺序入栈,但是出栈的时机是随意的,求共有多少种出栈顺序。
假设只有一个元素,只有一种出栈顺序:f(1) = 1
假设有两个元素,有两种出栈顺序:f(2) = 2
假设有三个元素,有5种出栈顺序:f(3)=5 即 123、132、213、321、231
一共有四个元素,那么对每个元素来说,出栈的时机也就有四个可选。
对元素A来说:
选择1号位置:即A只能入栈后马上出栈,后续三个元素有f(3)种方案
选择2号位置:A之前有一个元素出栈(它只可能是B),A之后有两个元素出栈,因此是f(1)xf(2)
选择3号位置:同理,f(2)xf(1)
选择4号位置:同理:f(3)
最终,f(4)=f(3)+f(1)xf(2)+f(2)xf(1)+f(3)=14
规律为:递推公式 f(n)=f(n-1)+f(1)xf(n-2)+...+f(n-2)xf(1)+f(n-1)
实际上网上有一个直接求解的公式,C(2n,n)/(n+1)
,推导涉及高等数学和组合数学比较深,这里就不研究了。