Sua tarefa é criar um programa que adicione números aleatórios a somas anteriores no confronto final de corridas de números.
Cada corredor (coluna) começa em 0 e adiciona 1 ou 0 à soma anterior em cada etapa da corrida até que todos os atletas atinjam a pontuação necessária para vencer. O 1 ou 0 deve ser escolhido aleatoriamente (a definição padrão de aleatório pode ser encontrada aqui ). A saída mostrará o resultado da corrida, com cada coluna representando um corredor, neste formato:
>> racers:5,score needed:2
0 0 0 0 0 # all racers start at 0
+ + + + + # add
1 0 0 0 1 # random 1 or 0
= = = = = # equals
1 0 0 0 1 # sum
+ + + + +
0 0 0 0 1
= = = = =
1 0 0 0 2 # winner!
+ + + +
1 1 1 1
= = = =
2 1 1 1
+ + +
1 1 1
= = =
2 2 2 # losers
Nota: somente os números, + e = precisam ser incluídos na saída.
Entrada
Seu programa aceitará os dois parâmetros a seguir como entrada:
- o número de corredores (colunas), que deve ser maior que dois
- a pontuação necessária para vencer, que deve ser maior que um
Isso é código-golfe - o programa com menos bytes vence.
Editar: há uma pontuação máxima não aplicável de 9 - isso é para preservar a integridade da coluna. Além disso, os espaços entre as colunas podem ser omitidos na saída.
Respostas:
Geléia,
373633 bytes3 bytes graças a Dennis.
Experimente online
Explicação
fonte
,‘X
(parear com n incrementado , escolha aleatória). No link principalṫ2
pode ser substituída porḊ
(dequeue) e”
com a variável⁶
.Pitão ,
3834 bytesExperimente online!
fonte
TSQL,
367345341 bytesGolfe
Experimente online
Ungolfed:
Observe que a semente aleatória no local do teste sempre será a mesma, fornecendo o mesmo resultado cada vez; no gerenciamento de estúdio, ela fornecerá resultados diferentes. Pode usar valores diferentes para pilotos e objetivo para obter uma imagem diferente
fonte
Python 3, 237 bytes
Uma função que recebe entrada via argumento e imprime em STDOUT. Essa abordagem utiliza o fato de que a saída segue um ciclo do período quatro, na forma '+ valor = valor', para todos os corredores. Usando um contador módulo quatro, uma lista contendo o valor desejado para cada etapa como uma string pode ser indexada e o resultado avaliado usando a função eval do Python.
Como funciona
Experimente no Ideone
fonte
Python 2 , 191 bytes
Experimente online!
Python 3 , 200 bytes
Experimente online!
fonte
Python 2, 278 bytes
onde r é o não. de pilotos ew é a pontuação para ganhar
Experimente aqui!
fonte
Perl 5 , 150 bytes
Experimente online!
A primeira entrada é o número de corredores, a segunda é a pontuação necessária.
fonte