Python:如何生成满秩二进制矩阵,其中每行只有3位1

时间:2014-06-28 07:27:48

标签: python matrix

我想知道如何生成满秩矩阵(m x m),给定m。 其中每行只有3个元素' 1'和' 0'别处。 例如:给定m = 5:

1 1 1 0 0

1 1 0 1 0

1 1 0 0 1

1 0 1 1 0

0 1 1 1 0

提前致谢

1 个答案:

答案 0 :(得分:2)

如果有任何这样的矩阵,例如:

row = ([ 1, 1, 1 ] + [ 0 ] * (m - 3)) * 2
A = [ row[i:m + i] for i in range(m, 0, -1) ]

这将执行类似

的矩阵
[[1, 1, 1, 0, 0],
 [0, 1, 1, 1, 0],
 [0, 0, 1, 1, 1],
 [1, 0, 0, 1, 1],
 [1, 1, 0, 0, 1]]

并且会rank(A) = m提供m > 3;对角线和它右边的2个元素(在底部旋转)设置为1。虽然IANAM,因此可逆性的证明=非奇异性=满级被留作OP的练习。