我正在尝试将11个值的所有可能的组合重复80次,但过滤掉总和大于1的情况。下面的代码实现了我正在尝试执行的工作,但需要花费几天的时间才能运行:
import numpy as np
import itertools
unique_values = np.linspace(0.0, 1.0, 11)
lst = []
for p in itertools.product(unique_values , repeat=80):
if sum(p)<=1:
lst.append(p)
上面的解决方案可以工作,但是需要太多时间。同样,在这种情况下,我将不得不定期将“ lst”保存到磁盘中并释放内存,以避免出现任何内存错误。后面的部分很好,但是代码需要几天(或几周)才能完成。
还有其他选择吗?
OP仅需要10的分区,但这是我在此期间编写的一些通用代码。
我不确定这是否有效,但是您可以使用此类生成器,并根据需要采用您的值: