Há um tipo de n x n matriz W chamada básica forma canónica Weyr . Essa matriz é descrita por seus blocos e possui as seguintes propriedades, usando o seguinte diagrama de referência:
- os principais blocos diagonais W II são n i x n i matrizes da forma λ I n i em que I n i é a n i x n i matriz identidade.
- n 1 ≥ n 2 ≥ ... ≥ n r
- os primeiros blocos superdiagonal W k k-1, para k ∈ 2..r são n k-1 × n k matrizes que são posto coluna cheia em forma escalonada de redução de linha , ou mais simplesmente, que n k senta-se sobre n k-1 - n k linhas de zeros.
- todos os outros blocos são 0 matrizes.
Por exemplo:
- Os principais blocos diagonais (amarelo) são tais que o n i são 4, 2, 2, e 1.
- Os primeiros blocos superdiagonais estão em verde.
- A zona cinza consiste em todos os outros blocos, que são todos 0 .
Para este desafio, assumiremos λ = 1.
Entrada
Uma matriz quadrada com 0s e 1s em qualquer formato conveniente.
Resultado
Envie um dos dois valores distintos para saber se a matriz de entrada é Weyr ou não Weyr.
Regras
Isso é código-golfe . O menor número de bytes em cada idioma vence. Regras / lacunas padrão se aplicam.
Casos de teste
Apresentado como matrizes de linhas.
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]]
Não-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]]
. Eu acho que é falso (mas minha resposta falha em identificá-lo como tal).