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 é?