C'è un tipo di matrice n × n W chiamata forma canonica di Weyr di base . Tale matrice è descritta dai suoi blocchi e ha le seguenti proprietà, usando il seguente diagramma di riferimento:
- i principali blocchi diagonali W ii sono n i × n i matrici della forma λ I n i dove I n i è la matrice di identità n i × n i .
- n 1 ≥ n 2 ≥ ... ≥ n r
- i primi blocchi superdiagonali W k-1, k per k ∈ 2..r sono n k-1 × n k matrici che sono rango di colonna completo in forma di scaglione ridotto di riga , o più semplicemente, I n k seduti sopra n k-1 : n k righe di zeri.
- tutti gli altri blocchi sono 0 matrici.
Per esempio:
- I blocchi diagonali principali (gialli) sono tali che n i sono 4, 2, 2 e 1.
- I primi blocchi superdiagonali sono in verde.
- La zona grigia è composta da tutti gli altri blocchi, che sono tutti 0 .
Per questa sfida assumeremo λ = 1.
Ingresso
Una matrice quadrata con 0 e 1 in qualsiasi formato conveniente.
Produzione
Stampa uno dei due valori distinti per stabilire se la matrice di input è Weyr o no Weyr.
Regole
Questo è code-golf . Vince il minor numero di byte in ogni lingua. Si applicano le regole / scappatoie standard.
Casi test
Presentato come array di righe.
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]]
Non-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]]
. Penso che sia falso (ma la mia risposta non riesce a identificarlo come tale).