Es gibt eine Art n × n Matrix W, die als kanonische Grundform von Weyr bezeichnet wird . Eine solche Matrix wird durch ihre Blöcke beschrieben und hat die folgenden Eigenschaften unter Verwendung des folgenden Referenzdiagramms:
- die Hauptdiagonalblöcke W ii sind n i × n i Matrizen der Form λ I n i, wobei I n i die Identitätsmatrix n i × n i ist.
- n 1 ≥ n 2 ≥ ... ≥ n r
- Die ersten superdiagonalen Blöcke W k-1, k für k ∈ 2..r sind n k-1 × n k Matrizen, die den vollen Spaltenrang in zeilenreduzierter Staffelform haben , oder einfacher gesagt, I n k, die oben aufliegen n k-1 - n k Reihen von Nullen.
- Alle anderen Blöcke sind 0 Matrizen.
Beispielsweise:
- Die diagonalen Hauptblöcke (gelb) sind so, dass die n i 4, 2, 2 und 1 sind.
- Die ersten superdiagonalen Blöcke sind grün.
- Die graue Zone besteht aus allen anderen Blöcken, die alle 0 sind .
Für diese Herausforderung nehmen wir λ = 1 an.
Eingang
Eine quadratische Matrix mit Nullen und Einsen in einem beliebigen Format.
Ausgabe
Geben Sie einen von zwei unterschiedlichen Werten aus, ob die Eingabematrix Weyr ist oder nicht.
Regeln
Das ist Code-Golf . In jeder Sprache gewinnen die wenigsten Bytes. Es gelten Standardregeln / Regelungslücken.
Testfälle
Präsentiert als Arrays von Zeilen.
Weyr:
[[1]]
[[1,1],[0,1]]
[[1,0,1,0,0],[0,1,0,1,0],[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,1]]
[[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,1,0,0],[0,0,0,0,1,0,0,1,0],[0,0,0,0,0,1,0,0,1],[0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]]
[[1,0,0,0,1,0,0,0,0],[0,1,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]]
Nicht-Weyr:
[[0]]
[[1,0],[1,1]]
[[1,0,0,1,0,0],[0,1,0,0,0,0],[0,0,1,0,0,1],[0,0,0,1,0,0],[0,0,0,0,1,0],[0,0,0,0,0,1]]
[[1,0,1,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]]
[[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]]
[[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]]
. Ich denke, es ist falsch (aber meine Antwort kann es nicht als solches identifizieren).