Este é o Hole-9 do Torneio de Outono da APL CodeGolf . Eu sou o autor original do problema lá e, portanto, posso republicá-lo aqui.
Dada uma matriz booleana simples (retangular, sem serrilhada) (de uma ou mais dimensões), retorne uma lista de matrizes com formato assim, onde a primeira matriz é idêntica à entrada e a última é verdadeira. Todas as etapas intermediárias devem ter mais uma verdade que seu vizinho à esquerda (mas, caso contrário, devem ser idênticas). Para cada etapa, o bit alterado deve ser escolhido de forma pseudo-aleatória (e você pode coletar uma semente, se necessário).
Exemplos
[0]
dá [[0],[1]]
[[0]]
dá [[[0]],[[1]]]
[[[1,1,1],[1,1,1],[1,1,1]],[[1,1,1],[1,1,1],[1,1,1]],[[1,1,1],[1,1,1],[1,1,1]]]
dá [[[[1,1,1],[1,1,1],[1,1,1]],[[1,1,1],[1,1,1],[1,1,1]],[[1,1,1],[1,1,1],[1,1,1]]]]
Os resultados dos exemplos a seguir podem, obviamente, variar devido à aleatoriedade; estes são apenas exemplos de saída válida:
[0,1,0,0]
dá [[0,1,0,0],[1,1,0,0],[1,1,0,1],[1,1,1,1]]
[[0,1,0],[0,0,1]]
dá [[[0,1,0],[0,0,1]],[[1,1,0],[0,0,1]],[[1,1,0],[0,1,1]],[[1,1,1],[0,1,1]],[[1,1,1],[1,1,1]]]
[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]]
dá [[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,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],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,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],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,1,0],[1,0,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,0,0],[0,1,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,1,0],[0,1,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,1,0],[0,1,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,1,0],[0,1,0,0,0,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[0,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,0],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,1],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,0],[1,1,1,0,0,0,0,1],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,0,0,0,1],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,0,1,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,0,0,0,1],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,0,0,0,1],[0,0,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,0],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,0,0,0,1],[0,1,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,0,0,0,1],[0,1,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,0,1,1,0],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,0,1],[0,1,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,0],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,0,1],[0,1,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,0,1],[0,1,0,1,0,0,0,0]],[[1,0,1,0,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,0,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,0,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,0,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,1,0,0],[0,0,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,0]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,0],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,1]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,0,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,1]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,0,0,0,1]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[0,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,1,0,0,1]],[[1,0,1,1,0,1,0,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,1,0,0,1]],[[1,1,1,1,0,1,0,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,0,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[0,0,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[0,1,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[1,1,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,0],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[1,1,0,0,1,1,1,1],[0,0,1,0,1,0,0,1],[1,1,0,0,1,0,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[1,1,0,0,1,1,1,1],[0,1,1,0,1,0,0,1],[1,1,0,0,1,0,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,0,1,1,0],[0,1,1,1,1,0,1,1],[1,1,0,0,1,1,1,1],[0,1,1,0,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,1,1,1,0],[0,1,1,1,1,0,1,1],[1,1,0,0,1,1,1,1],[0,1,1,0,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,1,1,1,0],[0,1,1,1,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,0,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1]],[[1,1,1,1,1,1,1,0],[0,1,1,1,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,0,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,0],[0,1,1,1,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,0],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,0,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1],[1,1,0,0,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,0,1],[1,1,0,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1],[1,1,0,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,0,1,1],[1,1,0,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,0,1,1],[1,1,0,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,0,1,1,1,1],[0,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,0,1,1],[1,1,0,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,0,1,1],[1,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,0,1,1],[1,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,0,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]],[[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]]]