在矩阵中创建一个包含所有可能组合的生成器(我不能存储整个数组,但我只能迭代它)

时间:2018-02-28 10:19:37

标签: python-3.x algorithm

编辑:我发现了一个类似的topic,但我的问题不同之处在于结果数组非常大并且不适合内存(8 **(2 ** 7))迭代

我想找到最快的算法来获得矩阵中的所有组合。

我遵循解决方案:

def iter_matrix(self, matrix_of_all_comb):
    for combination in itertools.product(*matrix_of_all_comb)):
        if check_constr(combination):
            yield np.array(combination)
for i in iter_matrix(arg):
    print(i)

matrix_of_all_comb - 任何具有dim n * m的矩阵(我有n> 8且m> 9)。 不要注意" check_constr",此操作是即时的,不会影响代码。

我的主要问题是如何最大限度地提高迭代速度(这是不记录所有组合结果所需的生成器),但似乎不可能。你有想法吗?

0 个答案:

没有答案