Określ, czy jakąś permutacją wiersza macierzy jest Toeplitz

A Toeplitz macierz „to macierz, w której każda zstępująca przekątna od lewej do prawej jest stała”. Biorąc pod uwagę macierz binarną M, czy istnieje skuteczny algorytm do określenia, czy istnieje permutacja rzędów, co czyni go Toeplitzem?

Na przykład ustaw

M= [0 1 1]
   [1 1 0]
   [1 0 1]

Jeśli zamienisz pierwszy i drugi rząd, otrzymasz

[1 1 0]
[0 1 1]
[1 0 1]

czyli Toeplitz.

W Pythonie można utworzyć losową macierz binarną w następujący sposób.

n = 10
h = 10
M =  np.random.randint(2, size=(h,n))

Chciałbym zastosować test do M.

(Zauważ, że macierz M nie musi być kwadratowa).

questionAnswers(3)

yourAnswerToTheQuestion