Lost es un lenguaje de programación 2D en el que la posición de inicio y la dirección de la IP son completamente aleatorias.
Esto hace que sea muy difícil hacer programas deterministas de Lost. Sin embargo, hoy no estamos escribiendo un programa determinista, estamos escribiendo un RNG.
Escriba un programa Perdido que no ingrese y genere un solo dígito (0,1,2,3,4,5,6,7,8 o 9), con todos los dígitos con la misma probabilidad de ser emitidos. Dado que la ubicación y dirección de inicio de Lost es la única fuente de aleatoriedad, la única forma de hacerlo es hacer que cada ubicación en su fuente genere un número diferente de 0 a 9 con un número igual que genere cada dígito.
Puede calcular la probabilidad de cada dígito utilizando la -Q
bandera y canalizándola en este script de 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")]
Este es el código de golf, por lo que las respuestas se puntuarán en bytes, siendo mejores menos bytes.
Una visión general de Lost
Lost es un lenguaje envolvente IO 2D implícito que toma mucho del molde de Klein. Aquí hay una hoja de trucos rápida de lo que hacen los comandos perdidos
\
,/
,|
Espejos del IP<
,^
,>
,v
Puntos la ip en una dirección[
Refleja la ip si se mueve hacia el este; se convierte]
si la ip se mueve horizontalmente]
Refleja la ip si se mueve hacia el oeste; se convierte[
si la ip se mueve horizontalmente!
Salta la próxima operación?
Salta de la parte superior de la pila y salta si no es cero:
Duplica la parte superior de la pila.$
Intercambia los dos primeros elementos de la pila(
Aparece de la pila y empuja al alcance)
Aparece del alcance y empuja a la pila0
-9
empuja n a la parte superior de la pila"
Inicia y finaliza una cadena literal. Durante una cadena, los comandos literales no se ejecutan y, en cambio, sus valores de caracteres se envían a la pila.+
Agrega los dos primeros números*
Multiplica los dos números superiores-
Multiplica la parte superior por -1%
Desactiva la seguridad.#
Enciende la seguridad@
Finaliza la ejecución si la seguridad está desactivada (comienza)
[]
actuar como puertas,<>
señalar en direcciones y()
almacenar y recuperar del alcance. El alcance se usa para almacenar valores.@
o tiene otros casos de uso? Sobre soportes, no entiendo esta parte:becomes ] if the ip is moving horizontally
. Moverse hacia el este también es horizontal, ¿no?Respuestas:
81101 bytesEsto podría ser golfable aún más ...
Pruébalo en línea!
fuente
0
Ocasión de 7/101 de imprimirse (cualquiera de los<
o^
por debajo de su bloque, más el>
y%
símbolos),1
-8
tener una oportunidad 10/101, y9
tiene la oportunidad 11/101. Entonces parece que puede haber una posibilidad de que continúe para siempre.Perdido , 54 bytes
Pruébalo en línea!
Acabo de copiar la respuesta de pppery y hacer algunas cosas al azar. No sé nada sobre el lenguaje perdido. E incluso no sé qué sucede con los códigos anteriores. ¿Esto es trabajo? (No lo sé)
fuente
-Q
funciona. La salida parece distribuida normalmente de todos modos. Hubiera sido bueno tener una especificación completa del idioma vinculado en la pregunta.-Q
funciona. Como el lenguaje es aleatorio, la verificación se realiza ejecutando todas las posibilidades.-Q
hace esto e imprime todos los resultados. Cuanto más corto es el programa, menos posibilidades hay y menos salidas provienen de-Q
.