有n
个不同的元素,
已经知道每个元素被推入的顺序。
弹出订单可以有多少种不同的组合?
修改
事实上我知道有2n!/(n + 1)n!^ 2组合,但为什么呢?
答案 0 :(得分:1)
只能在一个订单中弹出一个堆栈 - 与按下元素的顺序相反。
答案 1 :(得分:1)
假设您的元素被称为A,B,C,......并按此顺序推送。
设P(X)表示“推X”而O(X)表示“Pop X”设N为元素数。
那么pop命令是什么?
当N = 1时的可能性:P(A)O(A)。 (即“A”)
当N = 2时的可能性:P(A)P(B)O(B)O(A)。 (“BA”)P(A)O(A)P(B)O(B)。 ( “AB”)
当N = 3时的可能性:ABC和BAC(从上面,然后是P(C)O(C)。)CBA。 (来自P(A)P(B)P(C)O(C)O(B)O(A)。)但不 CAB,因为如果“C”首先脱落,它必须最后一次,所以还没有其他任何事情发生,所以他们只能按照BA的顺序离开。
从该模式构建,你应该能够构建和解决一个递归关系,给出你需要的答案。
答案 2 :(得分:0)
好一个Eric。然而,当我尝试使用ABC时,我有4种可能性,ABC,BAC,BCA和CBA。
遗憾的是,提出的公式并不清楚,因为我不能让n = 3从上面所写内容的简单解释中给出4的答案。
归纳似乎是证明公式的答案(因为通常情况下,问题的形式是“证明...是由公式给出的......”)。
上述四种可能性中存在一定的对称性,这让我觉得提出答案可能并不太难。
编辑:实际上,我们不能获得ACB吗? AaBCcb。大写字母是push,小写是pop。所以,有5种可能性,CAB肯定是不可能的。