O objetivo é produzir a saída de n quadrados (nxn) de números inteiros aleatórios ( 0-9
) com um movimento *
que gira no sentido horário ao redor dos cantos, começando pelo canto superior esquerdo. Os quadrados devem estar lado a lado e separados por um único espaço.
Se n = 0
, a saída deve estar vazia.
Saída para n=1
:
*
Saída para n=2
:
*3 4*
14 07
Saída para n=3
:
*34 82* 291
453 224 924
145 158 57*
Saída para n=4
:
*153 135* 0154 0235
2352 5604 3602 2065
2245 6895 3561 7105
7225 5785 479* *662
Observe como a *
rotação (em torno dos cantos do quadrado), da esquerda para a direita, é assim: superior esquerdo, superior direito, inferior direito, inferior esquerdo, superior esquerdo, etc. (no sentido horário)
A resposta mais curta (medida em bytes) vence.
*
s non=4
exemplo? Talvez dê mais alguns exemplos?*153
, o segundo com a linha superior*135
e assim por diante.Respostas:
05AB1E ,
5049 bytesExplicação
Exemplos de entrada = 4.
Primeiro, criamos uma string de entrada ^ 3 números aleatórios entre 0 e 9.
produzindo
Em seguida, dividimos isso em pedaços, cada um do tamanho da entrada.
Isso é dividido em partes de entrada.
Isso nos dá uma matriz de números.
Em seguida, passamos pelas linhas da matriz, inserindo asteriscos nos lugares certos.
Agora temos a matriz com um "*" em cada linha, mas queremos um asterisco por coluna.
Então, compactamos esta lista, transformando linhas em colunas e vice-versa.
Tudo o que resta agora é formatar a saída.
Unir as linhas nos espaços e as colunas nas novas linhas nos fornece o resultado final.
Experimente online!
Solução antiga de 50 bytes
fonte
Dyalog APL , 57 bytes
Requer
⎕IO←0
qual é o padrão em muitos sistemas.Supondo que o espaçamento duplo seja permitido, conforme o primeiro exemplo do OP.
TryAPL online!
Solução não concorrente de 49 bytes (Dyalog APL 16.0):
fonte
Java 7,
372370366 bytesProvavelmente pode ser jogado mais um pouco, colocando os asteriscos e criando a saída ao mesmo tempo, em vez de um por um.
Ungolfed & código de teste:
Experimente aqui.
Saída possível:
fonte
PHP, 181 bytes
fonte