Bestimmen Sie, ob eine Zeilenpermutation einer Matrix Toeplitz ist
A Töplitz Matrix "ist eine Matrix, in der jede von links nach rechts absteigende Diagonale konstant ist." Gibt es bei einer gegebenen binären Matrix M einen effizienten Algorithmus, um zu bestimmen, ob es eine Permutation der Zeilen gibt, die es zu Toeplitz macht?
Zum Beispiel setzen
M= [0 1 1]
[1 1 0]
[1 0 1]
Wenn Sie die erste und zweite Reihe tauschen, erhalten Sie
[1 1 0]
[0 1 1]
[1 0 1]
Das ist Töplitz.
In Python können Sie eine zufällige binäre Matrix wie folgt erstellen.
n = 10
h = 10
M = np.random.randint(2, size=(h,n))
Ich möchte den Test auf M anwenden.
(Beachten Sie, dass die Matrix M nicht quadratisch sein muss.)