Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 数学:使用一个堆栈查找置换数_Function_Numbers_Stack_Discrete Mathematics_Catalan - Fatal编程技术网

Function 数学:使用一个堆栈查找置换数

Function 数学:使用一个堆栈查找置换数,function,numbers,stack,discrete-mathematics,catalan,Function,Numbers,Stack,Discrete Mathematics,Catalan,我想这更像是一道数学题,不是编程 假设我有一个堆栈,我想找到数字1,2,3,…n的排列。 我可以push和pop。 e、 g.如果n=2:push,pop,push,pop1,2和push,push,pop2,1 如果n=4,我只能使用堆栈从24排列中获得14。。 是否有人知道任何函数F(n)可以产生堆栈(只有一个)可以产生的置换数?如 f(1)=1 f(2)=2 f(4)=14,我认为有一个相当简单的公式。您正在寻找Npush操作(“X”)和Npop(“Y”)操作的排列,遵循一条简单规则:

我想这更像是一道数学题,不是编程

假设我有一个
堆栈
,我想找到数字
1,2,3,…n的
排列
。 我可以
push
pop
。 e、 g.如果n=2:
push,pop,push,pop
1,2和
push,push,pop
2,1

如果n=4,我只能使用
堆栈从
24
排列中获得
14
。。 是否有人知道任何
函数F(n)
可以产生堆栈(只有一个)可以产生的
置换数?如
f(1)=1

f(2)=2


f(4)=14,我认为有一个相当简单的公式。您正在寻找
N
push操作(“X”)和
N
pop(“Y”)操作的排列,遵循一条简单规则:

  • 空堆栈上没有弹出窗口(f.e.Y…和XXYYY…无效)
也许一些递归定义有助于:

function F(n_push, n_pop) {
  int total_count = 0;

  if (n_push > 0) total_count += F(n_push - 1, n_pop);
  if (n_pop > n_push) total_count += F(n_push, n_pop - 1);

  return total_count;
}

这样的函数是加泰罗尼亚数。有关公式,请参阅。

是的,这是正确答案。我不知道这些,但看看“组合数学中的应用”部分,这正是我们想要的。非常感谢!!很不错的。不过我在寻找更接近数学术语的东西。我真的很感激你的帮助。