Вы можете сделать следующее:
import random
def createMatrix(n):
firstRow = random.sample(range(n),n)
permutes = random.sample(range(n),n)
return list(firstRow[i:]+firstRow[:i] for i in permutes)
N = 5
m = createMatrix(N)
print(m)
Что для случая N=5
дает (после преобразования в numpy
массив для печати):
[[4 0 1 2 3]
[1 2 3 4 0]
[3 4 0 1 2]
[0 1 2 3 4]
[2 3 4 0 1]]
In в случае значений, начинающихся с 1, поправка к функции:
def createMatrix(n):
firstRow = random.sample(range(1, n + 1),n)
permutes = random.sample(range(1, n + 1),n)
return list(firstRow[i:]+firstRow[:i] for i in permutes)