【发布时间】:2018-07-15 06:18:56
【问题描述】:
我有一个由 80 个单元组成的矩阵。我的目标是测试每种可能的组合,其中每种组合的长度为 8 个单元格。
例如,其中一种可能的组合是 [0, 1, 2, 3, 4, 5, 6, 7]
我试图使用以下代码来打印这些组合中的每一个,但我得到的只是一个 MemoryError:
comb = combinations(range(80), 8)
for i in list(comb):
print(i)
我的目的是实际获取 i(每个组合)并将其设置在我的设备中并验证它是否正常工作。 print(i) 只是为了验证我做对了,并查看了一些组合。
有没有更高效的方式来完成这种任务?
顺便说一下,我知道我计划测试 2.898753715E+10 种组合。
【问题讨论】:
-
你几乎是对的,因为在底线我正在处理一个包含所有组合的列表。但是,我的主要兴趣不是列表(数组),而是以某种方式扫描所有可能的组合。除了使用 itertools.combinations() 之外,我不知道其他生成所有可能选项的方法
-
如果您的系统是 32 位的。我认为这不是您执行此类任务的正确方法。您可以细分列表并为每个列表设置阈值。他们一次打印每个列表。 py 提出这样的错误并没有错....