Você deve preencher uma matriz com todos os números do 0-n
inclusive. Nenhum número deve se repetir. No entanto, eles devem estar em uma ordem aleatória.
Regras
Todas as regras de código-golfe padrão e brechas padrão são proibidas
A matriz deve ser gerada pseudo-aleatoriamente. Toda permutação possível deve ter uma probabilidade igual.
Entrada
n
de qualquer maneira permitida na postagem de E / S na meta.
Resultado
A matriz de números passou de 0-n
inclusiva.
Respostas:
Perl 6 , 14 bytes
Tente
Expandido:
fonte
05AB1E , 3 bytes
Experimente online!
fonte
Pitão, 3 bytes
Demonstração
.S
é embaralhar. Envolve implicitamente um número inteiro de entradan
para o intervalo[0, 1, ..., n-1]
.h
é+1
, e a entrada é obtida implicitamente.fonte
R , 16 bytes
lê de
stdin
.sample
amostras aleatórias do vetor de entrada, retornando uma sequência (pseudo) aleatória.Experimente online!
fonte
Geléia , 3 bytes
Experimente online!
Explicação:
Solução alternativa, 3 bytes
Explicação:
Experimente online!
fonte
Python 2 , 51 bytes
Experimente online!
Existe,
random.shuffle()
mas ele modifica o argumento em vez de retorná-lo ...fonte
random.shuffle
lambda n:shuffle(range(n+1))
não gravaria a saída em nenhum lugar.PHP, 42 bytes
Experimente online!
fonte
Bash,
1811 bytesExperimente online!
fonte
Mathematica, 24 bytes
fonte
MATL , 4 bytes
Experimente online!
Explicação
fonte
Braquilog , 2 bytes
Experimente online!
Explicação
fonte
Japonês , 4 bytes
Experimente online
fonte
öx
que seria o suficiente até perceber a parte "inclusiva". (Você pode substituir ox
com quase qualquer outra coisa, btw)C #, 76 bytes
Isso retorna um IOrderedEnumerable, espero que esteja tudo bem, ou então preciso de mais alguns bytes para um .ToArray ()
fonte
CJam ,
76 bytes1 byte removido graças a Erik, o Outgolfer .
Este é um bloco anônimo (função) que pega um número inteiro da pilha e o substitui pelo resultado. Experimente online!
Explicação
fonte
{),mr}
1 byte não é mais curto?Java 8,
11411197 bytes-3 bytes e correções de bugs graças a @ OlivierGrégoire .
-4 bytes graças a @Jakob .
-10 bytes removendo
.toArray()
.Explicação:
Experimente aqui.
fonte
n
. Fix e golfe:for(n++;--n>=0;l.add(n));
. Além disso, eu digo que você não precisa retornar uma matriz. Matriz e lista são iguais na maioria dos idiomas, portanto, basta retornar a lista.>
deveria ser>=
.Stack
vez de aeVector
altere seu loop parafor(;n>=0;l.add(n--));
. E devolver umjava.util.List
é definitivamente bom.Ohm , 2 bytes
Experimente online!
fonte
Pyth, 4 bytes
Experimente aqui!
fonte
.S
com um argumento inteiro é o mesmo que.SU
, e[0..n]
pode ser codificado comoUh
, para que você possa usar o.SUh
que se torna.Sh
.C, 75 bytes
Função recursiva que é inicializada a partir do final da matriz na entrada e troca com um elemento aleatório antes da saída.
fonte
n > 98
?a
para um para se ajustar mais à regra?Carvão , 33 bytes
Experimente online! Link é a versão detalhada do código.
Aparentemente, são necessários 17 bytes para remover um elemento de uma lista no Charcoal.
Editar: Atualmente, são necessários apenas três bytes, desde que você deseje remover todas as ocorrências do item da lista. Isso, além de outras alterações no carvão, reduz a resposta para 21 bytes: Experimente online!
fonte
APL (Dyalog) , 5 bytes
Experimente online!
Supõe
⎕IO←0
, que é o padrão em muitas máquinas.Explicação
⊢
o argumento certo1+
adicione 1 a ele?⍨
gerar números 0 ..1+⊢
-1 e distribuí-los aleatoriamente em uma matriz para que dois números não se repitamfonte
q / kdb +, 11 bytes
Solução:
Exemplo:
Explicação:
Use o
?
operador com uma entrada negativa para fornecer a lista completa de0->n
sem duplicatas:fonte
TI-83 BASIC, 5 bytes (chato)
Sim, um embutido.
randIntNoRep(
é um token de dois bytes eAns
é um byte.Mais divertido, 34 bytes:
Direto do tibasicdev . Provavelmente jogável, mas ainda não encontrei nada.
O que isso faz: Classifica uma matriz aleatória, movendo elementos do segundo argumento (
L₁
aqui) da mesma maneira que seus elementos correspondentes.fonte
JavaScript (ES6), 51 bytes
fonte
f(5)
10 vezes e5
sempre foi um dos dois últimos itens.1,5,4,0,2,3
&1,0,2,5,3,4
. EDIT: E mais alguns prnt.sc/fe0goef(5)
1e5 vezes e encontra a posição média de cada número nos resultados. A matriz resultante foi[ 1.42791, 1.43701, 2.00557, 2.6979, 3.3993, 4.03231 ]
, então não acho que seja uniforme. ( code )n=>(a=[...Array(n).keys(),n++]).reduce((a,v,i)=>([a[i],a[j]]=[a[j=n*Math.random()|0],v],a),a)
?random()
não é uniforme. Veja (por exemplo) en.wikipedia.org/wiki/BrowserChoice.eu#CriticismAceto ,
151416 bytesPressione zero na pilha, leia um número inteiro, construa um intervalo e embaralhe-o:
Defina uma marca de captura, comprimento de teste para 0 e (nesse caso) saída:
Caso contrário, imprima o valor, uma nova linha e retorne ao teste de comprimento:
(Eu tive que mudar o código porque percebi que interpretava mal a pergunta e havia construído um intervalo de 1-n, não 0-n.)
fonte
Go , 92 bytes
Perda principalmente pela necessidade de semear o PRNG.
Experimente online!
fonte
Ruby, 20 bytes
->n{[*0..n].shuffle}
fonte
8o ,
423634 bytesCódigo
SED (diagrama de efeito de pilha) é
n -- a
Uso e exemplo
fonte
Javascript (ES6), 68 bytes
Cria uma matriz de formulário
Em seguida, classifica e retorna os últimos elementos na nova ordem
fonte
J, 11 bytes
Explicação:
Exemplos:
fonte
Tcl , 90 bytes
Experimente online!
Tcl , 96 bytes
Experimente online!
fonte