Lost é uma linguagem de programação 2D onde a posição inicial e a direção do ip são inteiramente aleatórias.
Isso torna muito difícil criar programas perdidos determinísticos. No entanto, hoje não estamos escrevendo um programa determinístico, estamos escrevendo um RNG.
Escreva um programa Lost que não aceite nenhuma entrada e produza um único dígito (0,1,2,3,4,5,6,7,8 ou 9), com todos os dígitos com a mesma probabilidade de serem produzidos. Como o local e a direção de início de Lost são a única fonte de aleatoriedade, a única maneira de fazer isso é fazer com que todos os locais em sua fonte produzam um número diferente de 0 a 9, com um número igual imprimindo cada dígito.
Você pode calcular a probabilidade de cada dígito usando a -Q
flag e direcionando-a para esse script python
import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]
Isso é código-golfe, então as respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Uma visão geral de Lost
Lost é uma linguagem 2D implícita de IO que envolve muito do molde de Klein. Aqui está uma rápida tabela de dicas sobre o que os comandos perdidos fazem
\
,/
,|
Espelhos do ip<
,^
,>
,v
Aponta o ip em uma direção[
Reflete o ip se estiver se movendo para o leste; torna-]
se se o ip está se movendo horizontalmente]
Reflete o ip se estiver se movendo para o oeste; torna-[
se se o ip está se movendo horizontalmente!
Ignora a próxima operação?
Aparece no topo da pilha e salta se não for zero:
Duplica a parte superior da pilha$
Troca os dois principais itens da pilha(
Aparece da pilha e empurra para o escopo)
Aparece do escopo e empurra para a pilha0
-9
empurra n para o topo da pilha"
Inicia e termina uma string literal. Durante uma string, comandos literais não são executados e, em vez disso, seus valores de caracteres são enviados para a pilha.+
Adiciona os dois primeiros números*
Multiplica os dois principais números-
Multiplica o topo por -1%
Desliga a segurança#
Liga a segurança@
Finaliza a execução se a segurança estiver desativada (inicia)
[]
agir como portas,<>
apontar direções e()
armazenar e recuperar do escopo. O escopo é usado para armazenar valores.@
ou tem outros casos de uso? Sobre suportes, eu não entendo esta parte:becomes ] if the ip is moving horizontally
. Mover-se para o leste também é horizontal, não é?Respostas:
81101 bytesIsso pode ser ainda mais jogável ...
Experimente online!
fonte
0
tem uma chance de 7/101 de ser impressa (qualquer uma<
ou^
abaixo do bloco, mais o símbolo>
e%
),1
-8
tem uma chance de 10/101 e9
tem uma chance de 11/101. Então parece que pode haver uma chance de continuar para sempre.Perdido , 54 bytes
Experimente online!
Apenas copiei da resposta de pppery e fiz algumas coisas aleatórias. Não sei nada sobre a linguagem Lost. E eu nem sei o que está acontecendo nos códigos acima. Isso é trabalho? (Eu não sei)
fonte
-Q
funciona? A saída parece normalmente distribuída de qualquer maneira. Teria sido bom ter uma especificação completa do idioma vinculado na pergunta.-Q
funciona. Como o idioma é aleatório, a verificação é feita executando todas as possibilidades.-Q
faz isso e imprime todos os resultados. Quanto mais curto o programa, menos possibilidades existem e menos resultados provêm-Q
.