Dado um número inteiro positivo n < 10
, crie uma matriz bidimensional em que cada local seja preenchido com seu x
e y
índice (começando no canto superior esquerdo).
Por exemplo:
Entrada: 2
00 10
10 11
Entrada: 3
00 10 20
01 11 21
02 12 22
Depois que a grade for criada, preencha aleatoriamente cada índice. Pode ser com um 'x' ou qualquer outra maneira de indicar que um ponto foi preenchido.
Você determina qual local preencher, gerando índices aleatoriamente para preencher a matriz. Você só pode preencher n ^ 2 vezes para não preencher quantas vezes quiser até que a matriz esteja completamente preenchida. No final, a matriz deve ser preenchida, portanto, você deve fazer algum trabalho para verificar os números aleatórios que você usa para preencher, para garantir que a mancha ainda não esteja preenchida.
Atualize ou imprima após cada preenchimento para mostrar a progressão das iterações de preenchimento.
Exemplo para preenchimento:
Entrada: 2
00 10
01 11
00
é escolhido aleatoriamente:
XX 10
01 11
01
é escolhido aleatoriamente:
XX 10
XX 11
00
é escolhido aleatoriamente, mas, como já foi escolhido, um relançamento escolhe 10
:
XX XX
XX 11
11
é escolhido aleatoriamente:
XX XX
XX XX
Não imprima os números aleatórios, pois visualmente eu devo ver qual índice foi selecionado. Com isso, quero dizer não imprimir " 11
é escolhido aleatoriamente:". Está aqui por uma questão exploratória.
Como esse é o código-golfe O código mais curto vence.
Divirta-se e jogue golfe feliz!
n>= 10
possível? (você precisa começar a saber sobre o comprimento máximo para preencher corretamente os zeros à esquerda). O preenchimento desse caso é um índice de cada vez, não um dígito de cada vez, certo?Respostas:
05AB1E , 29 bytes
Experimente online!
O espaço escolhido como caractere para os números removidos (como parece bom), mas pode ser substituído por qualquer caractere sem afetar a contagem de bytes.
Explicação
fonte
Pip ,
41403836 bytes35 bytes de código, +1 para o
-S
sinalizador.Recebe entrada do argumento cmdline. Substitui por espaço (qualquer outro caractere é possível por +1 byte). Produz iterações sucessivas separadas por uma única nova linha (que é legal, mas pode dificultar a leitura). Experimente online!
Todos os tipos de truques sujos neste.A versão mais curta tem menos truques sujos. : ^ (Explicação:fonte
n>=10
a randomização não está funcionando corretamente, mas ainda atinge o sumário. Para números maiores que 10, ele remove apenas ondeindex_i==index_j
. Alguma idéia por trás da razão disso?(mi@##Pmi@0)
parte. Eu coloquei vários hacks de redução de bytes que dependem dos índices serem de um dígito.##
, Entendi. Bom uso de suposições. Obrigado pela explicação haha.Groovy (202 bytes)
Esse formato de saída específico realmente atrapalhou minha contagem de bytes, mas meh.
Experimente: https://groovyconsole.appspot.com/edit/5171951567896576 (+9 bytes para uma impressão mais bonita)
Ungolfed:
Exemplo de saída:
fonte
4x4
quadrado indexado a 0 . O quadrado em si é apenas uma nova linha separada, assim como cada iteração é uma nova linha, portanto a saída meio que corre junto.R,
848174 bytesAgora usa uma indexação em vez de indexação zero. Livrei-me de 7 bytes graças a @Billywob.
Exemplo de saída para N = 3
fonte
replace
:for(i in sample(N^2)){m[i]="XX";print(m)}
AWK, 229 bytes
Eu adicionei alguns bytes para dar à saída um espaço entre cada matriz.
Nota: para torná-lo mais 'aleatório' entre as execuções, uma chamada para
srand()
pode ser adicionada por 7 bytes adicionais.Uso e saída após armazenar o código acima em
FILE
:fonte
PHP, 172 bytes
Demolir
fonte
Python 2, 190 bytes
fonte