Определить, является ли некоторая перестановка строк матрицы теплицевой
A Теплица матрица "- это матрица, в которой каждая нисходящая диагональ слева направо является постоянной." Учитывая бинарную матрицу M, существует ли эффективный алгоритм для определения, существует ли перестановка строк, что делает его теплицевым?
Например, установить
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))
Я хотел бы применить тест к М.
(Обратите внимание, что матрица М не обязательно должна быть квадратной.)