生成所有可能的数组组合

Posted

技术标签:

【中文标题】生成所有可能的数组组合【英文标题】:Generate All possible combinations of Array 【发布时间】:2022-01-18 13:47:38 【问题描述】:

我有 2 个整数,我想使用这两个整数创建一个数组列表,如下所示:

Int1 = 3 Int2 = 4

Array1(4,4,4) Array2(4,4,3) Array3(4,4,2) Array4(4,4,1) Array5(4,4,0) Array6(4,3,4) ... 数组(0,0,0)

有没有一种有效的方法来做到这一点?我基本上是使用 y 个项目生成长度 x 的所有可能组合。

我正在使用python,但很高兴使用其他方法!

【问题讨论】:

您想创建只有 2 维的 3 维数组? 看看the functions in module itertools 具体itertools.product(range(y+1), repeat=x) 【参考方案1】:

如果问题中有“生成”和“组合”这两个词,那么答案在module itertools。

from itertools import product

def answer(x, y):
    return product(range(y+1), repeat=x)

print( list(answer(3, 4)) )
# [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3), (0, 0, 4), (0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 2, 0), (0, 2, 1), (0, 2, 2), (0, 2, 3), (0, 2, 4), (0, 3, 0), (0, 3, 1), (0, 3, 2), (0, 3, 3), (0, 3, 4), (0, 4, 0), (0, 4, 1), (0, 4, 2), (0, 4, 3), (0, 4, 4), (1, 0, 0), (1, 0, 1), (1, 0, 2), (1, 0, 3), (1, 0, 4), (1, 1, 0), (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 1, 4), (1, 2, 0), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 2, 4), (1, 3, 0), (1, 3, 1), (1, 3, 2), (1, 3, 3), (1, 3, 4), (1, 4, 0), (1, 4, 1), (1, 4, 2), (1, 4, 3), (1, 4, 4), (2, 0, 0), (2, 0, 1), (2, 0, 2), (2, 0, 3), (2, 0, 4), (2, 1, 0), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 1, 4), (2, 2, 0), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 2, 4), (2, 3, 0), (2, 3, 1), (2, 3, 2), (2, 3, 3), (2, 3, 4), (2, 4, 0), (2, 4, 1), (2, 4, 2), (2, 4, 3), (2, 4, 4), (3, 0, 0), (3, 0, 1), (3, 0, 2), (3, 0, 3), (3, 0, 4), (3, 1, 0), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 1, 4), (3, 2, 0), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 2, 4), (3, 3, 0), (3, 3, 1), (3, 3, 2), (3, 3, 3), (3, 3, 4), (3, 4, 0), (3, 4, 1), (3, 4, 2), (3, 4, 3), (3, 4, 4), (4, 0, 0), (4, 0, 1), (4, 0, 2), (4, 0, 3), (4, 0, 4), (4, 1, 0), (4, 1, 1), (4, 1, 2), (4, 1, 3), (4, 1, 4), (4, 2, 0), (4, 2, 1), (4, 2, 2), (4, 2, 3), (4, 2, 4), (4, 3, 0), (4, 3, 1), (4, 3, 2), (4, 3, 3), (4, 3, 4), (4, 4, 0), (4, 4, 1), (4, 4, 2), (4, 4, 3), (4, 4, 4)]

【讨论】:

以上是关于生成所有可能的数组组合的主要内容,如果未能解决你的问题,请参考以下文章

生成所有可能的数组组合

二维数组中长度为 8 的所有可能组合

生成所有可能的真/假组合

PostgreSQL 在递归查询中找到所有可能的组合(排列)

数组元素的PHP组合

生成所有组合时的复杂性