Dado um número inteiro positivo n
, faça o seguinte (e produza todas as etapas):
- comece com uma lista contendo
n
cópias den
. - faça os seguintes
n
horários: - na
i
ª etapa, diminua gradualmente ai
ª entrada da lista até atingiri
Assim, por exemplo, se um dado n
é 4
, então você começa com [4,4,4,4]
, e em seguida, no primeiro passo que você tem [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. Na segunda etapa, você tem [1,3,4,4]
, [1,2,4,4]
. No terceiro passo você tem [1,2,3,4]
. Nada é feito no quarto passo.
Então sua saída é [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Qualquer formato de entrada / saída razoável é permitido.
Aplicam-se brechas padrão . Isso é código-golfe : a resposta com a menor contagem de bytes ganha.
code-golf
array-manipulation
Freira Furada
fonte
fonte
i
th sempre é indexado em 1.Respostas:
Geléia , 9 bytes
Experimente online!
Quão?
* Pode ser mais fácil ver o que está acontecendo com o produto cartesiano usado acima com uma entrada diferente:
fonte
R ,
838274 bytesExperimente online!
Em vez de um loop for duplo, um
while
loop é suficiente aqui: encontramos o primeiro índice em que a lista é maior que o índice e diminuímos lá.K
temTRUE
ondeN[i]>i
,which(K)
retorna os índices verdadeiros, e levamos o primeiro com[1]
.fonte
Gelatina , 12 bytes
Experimente online!
fonte
JavaScript (ES6), 75 bytes
Experimente online!
fonte
APL + WIN, 54 bytes
Solicita a entrada de tela de número inteiro
Produz uma matriz com cada linha representando o resultado de cada etapa, por exemplo, para 4:
fonte
Gelatina , 11 bytes
Experimente online!
Como funciona
fonte
Python 3 , 91 bytes
Experimente online!
fonte
Java (OpenJDK 8) , 135 bytes
Experimente online!
Explicação:
Crédito:
-8 bytes graças a Jonathan Frech !
-16 bytes graças a Kevin Cruijssen !
-1 byte graças a Okx !
fonte
import java.util.*;
medo de fazer parte da contagem de bytes. E o código do @ JonathanFrech pode ser jogado com mais 4 bytes colocando o,i=0
depois dor[]
e mudando<-~a
para<=a
. ( Experimente online. 144 bytes ) (e eu mudei~-i
parai-1
torná-lo mais legível ..)import java.util.*;
usandojava.util.Arrays x=null;
andx.fill
ex.toString
. (Note-se que sua solução atual é de 155 bytes com o exigidoimport java.util.*;
.)for(;r[i-1]>i;
vez defor(;r[i-1]!=i;
.++i<=a
parai++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Experimente on-line 135 bytesHaskell,
69 67 6563 bytesDefinição recursiva:
Obrigado a Laikoni por 2 bytes!
fonte
map
é dois bytes mais curto com uma compreensão da lista: Experimente online!PHP, 153 bytes
Experimente online!
Código
Vou tentar diminuir os bytes ou terminar a função recursiva
Explicação
fonte
Python 2 ,
8076 bytesExperimente online!
print
Foi um desperdício ter duas declarações, mas não consigo pensar em uma maneira melhor no momento.fonte
Python 2 , 70 bytes
-2 bytes graças a @LeakyNun
-2 bytes graças a @JonathanFrech
Experimente online!
fonte
(I-1)
->~-I
i=I
e decrementando.Java (JDK 10) , 112 bytes
Experimente online!
fonte
J ,
1715 bytesExperimente online!
Explicação
fonte
Retina , 49 bytes
Experimente online! Explicação:
Converta a entrada para unário.
Crie uma lista de n cópias de
i,n
ondei
está o índice da cópia.Não imprima nada (quando o loop terminar).
Faça um loop até o padrão não mudar.
Exclua temporariamente
i
es e converta-osn
em decimal e saída.Pegue a primeira entrada da lista cujo valor exceda seu índice e diminua-o.
fonte
Python 3 ,
706765 bytesExperimente online!
Versão não destruída:
fonte
C (clang) ,
131141 bytesExperimente online!
Isso funcionará para todos
n
até 99. O TIO trunca a saída. Ele pode suportar arbitrariamente maioresn
, alterando o tamanho da matrizm
conforme a memória permitir.O seguinte é limitado a n = 1..9, mas é significativamente mais curto
C (clang) ,
8992 bytesExperimente online!
Atualizado: modificado para evitar dependência da inicialização estática
fonte
static/global initialization because multiple test cases
não é permitido, pois as funções precisam ser chamadas mais de uma vez.m[j]--,p()
parap(m[j]--)
e salvar um byte.Clojure, 132 bytes
Eu esperava que isso fosse mais curto ...
Menos stateful mas mais longo em 141 bytes:
fonte
Python 3, 101 bytes
Provavelmente eu poderia jogar mais com a impressão, mas estou longe do meu computador e não tenho muita certeza das regras do python 2 sobre como definir uma variável para impressão. Atualizarei mais tarde quando chegar a um computador ou se alguém esclarecer nos comentários.
fonte
K (ngn / k) ,
3432 bytesExperimente online!
fonte