我有一个 ℕ5 的子集,五维向量,其元素位于自然数中。该子集定义为区间 [a1, a2]×[b 1,b2]×...×[f1, f2],我想枚举大小为 1 的子集,即向量 (x1 、x2、x3、x 4, x5),其中 x1 位于 [a1、a2]、x2 位于 [ b1、b2] 等。执行此操作的最佳方法是什么?
最佳答案
这是cartesian product你可以使用 itertools.product
计算它:
a = [0, 1]
b = [2, 3]
c = [4, 5]
d = [6, 7]
e = [8, 9]
for subset in product(a, b, c, d, e):
print(subset)
输出
(0, 2, 4, 6, 8)
(0, 2, 4, 6, 9)
(0, 2, 4, 7, 8)
(0, 2, 4, 7, 9)
(0, 2, 5, 6, 8)
(0, 2, 5, 6, 9)
(0, 2, 5, 7, 8)
(0, 2, 5, 7, 9)
(0, 3, 4, 6, 8)
(0, 3, 4, 6, 9)
(0, 3, 4, 7, 8)
(0, 3, 4, 7, 9)
(0, 3, 5, 6, 8)
(0, 3, 5, 6, 9)
(0, 3, 5, 7, 8)
(0, 3, 5, 7, 9)
(1, 2, 4, 6, 8)
(1, 2, 4, 6, 9)
(1, 2, 4, 7, 8)
(1, 2, 4, 7, 9)
(1, 2, 5, 6, 8)
(1, 2, 5, 6, 9)
(1, 2, 5, 7, 8)
(1, 2, 5, 7, 9)
(1, 3, 4, 6, 8)
(1, 3, 4, 6, 9)
(1, 3, 4, 7, 8)
(1, 3, 4, 7, 9)
(1, 3, 5, 6, 8)
(1, 3, 5, 6, 9)
(1, 3, 5, 7, 8)
(1, 3, 5, 7, 9)
关于python - 在 Python 中迭代/枚举 N^5 的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50368024/