A Toeplitz matrix "- это матрица, в которой каждая нисходящая диагональ слева направо постоянна." Учитывая двоичную матрицу M, существует ли эффективный алгоритм, чтобы определить, есть ли перестановка строк, которые делают его Toeplitz?
Например, установите
M= [0 1 1]
[1 1 0]
[1 0 1]
Если вы меняете первый и второй строки, вы получаете
[1 1 0]
[0 1 1]
[1 0 1]
который является теплицем.
В python вы можете сделать случайную двоичную матрицу следующим образом.
n = 10
h = 10
M = np.random.randint(2, size=(h,n))
Я хотел бы применить тест к M.
(Обратите внимание, что матрица M не должна быть квадратной.)