生成大小为N x M的所有可能的二进制矩阵(Python)

时间:2019-01-27 21:20:51

标签: python matrix combinations

我知道还有其他类似的问题,这些问题会生成具有某些属性的矩阵,但是我希望生成给定大小的所有可能的矩阵,并且没有限制,除了Python中的条目为1或0之外。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我做到了(只是开玩笑)

def gen(n, m): 
    for i in range(2**(n*m)): 
        yield np.array([int(k) for k in "{0:b}".format(i).zfill(n*m)]).reshape(n,m)

这种工作方式有点像破解,我用二进制数,然后用位填充数组。

如果您不熟悉生成器/迭代器,只需看看如何使用它即可:

for mat in gen(3, 5): pass   # mat goes threw every possible array (uses virtually no memory)
l = list(gen(3, 5))          # array of all possible arrays (uses a lot of memory)