在python中生成所有可能的n * n二进制矩阵

asd*_*sdf 5 python matrix adjacency-matrix

我在玩图形和 python,我正在尝试在所有可能的方阵上测试一些代码,这些方阵代表邻接矩阵(即具有 0 和 1 的矩阵)。

我们知道有 2^{n^2} 个可能的 nxn 矩阵。

在 python 中生成所有可能的 nxn 二进制矩阵的最佳代码是什么?

asd*_*sdf 1

由于我无法在任何地方找到解决方案,并且我认为花一些时间给其他人可能会有所帮助。

def generateAllBinaryMatrix(n):
    G = np.zeros([n,n])

    cordx=[]
    cordy=[]
    for x in range(0,n):
        for y in range(0,n):
            cordx.append(x)
            cordy.append(y)

    cx=np.array(cordx)
    cy=np.array(cordy)
    indices=(cx,cy)
    print indices
    raw_input()
    for j in range(0,2**(indices[0].size)):
        G[indices] = [1 if digit=='1' else 0 for digit in bin(j)[2:].zfill(indices[0].size)]
        yield (G)
Run Code Online (Sandbox Code Playgroud)