Определить, является ли некоторая перестановка строк матрицы теплицевой

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))

Я хотел бы применить тест к М.

(Обратите внимание, что матрица М не обязательно должна быть квадратной.)

Ответы на вопрос(3)

Ваш ответ на вопрос