如何生成二维物体的所有可能性

问题描述 投票:1回答:2

我必须生成放置在堆栈中的对象的所有可能性,如下所示:

  • 有n个对象和b个堆栈
  • 我在乎他们在堆栈中的位置

例如,如果我们只关心它们所在的堆栈,并且我们有3个对象和2个堆栈,我们可以将数组做成一个]

((0,1,1)-这意味着对象1在堆栈0中,其余的在堆栈1中

生成所有组合就是(0,0,0)(0,0,1),依此类推。

如果我实际上需要知道栈中什么是顶层,那么我就不会这样子

我想到的是也有一个堆栈顺序变量,所以对于(0,1,1)的情况,应该是

(((0,0),(1,0),(1,1))或((0,0,(1,1),(1,0))),所以每个变量的第一个变量是是,第二个是其顺序,0最低

如何在python中生成所有可能性? (所以(0,1,1)将有2个排列,而(1,1,1)将有6个排列)]

我对((a,b),...)的表示有效吗?​​

我必须生成放置在堆栈中的对象的所有可能性,如下所示:有n个对象和b个堆栈,我关心它们在堆栈中的位置,例如,如果我们只关心哪个堆栈...

python list permutation
2个回答
0
投票
您可以使用itertools这样生成组合:

0
投票
不同的表示可能会更简单:将不同的堆栈视为一个大堆栈中的区域,然后可以将元素在堆栈上的分布视为(a)所有元素的排列,以及(b)该元素的划分排列成不同的堆栈。例如,对于n=5b=3,排列的一个这样的分区可能是[4 3 | 1 | 2 5]
© www.soinside.com 2019 - 2024. All rights reserved.