Lost ist eine 2-D-Programmiersprache, bei der Startposition und Richtung der IP völlig zufällig sind.
Dies macht es sehr schwierig, deterministische Lost-Programme zu erstellen. Allerdings schreiben wir heute kein deterministisches Programm, wir schreiben eine RNG.
Schreiben Sie ein Lost-Programm, das keine Eingabe annimmt und eine einzelne Ziffer (0,1,2,3,4,5,6,7,8 oder 9) ausgibt, wobei alle Ziffern die gleiche Wahrscheinlichkeit haben, ausgegeben zu werden. Da der Startort und die Startrichtung von Lost die einzige Quelle für Zufälligkeiten sind, besteht die einzige Möglichkeit darin, dass jeder Ort in Ihrer Quelle eine andere Zahl von 0 bis 9 ausgibt, wobei für jede Ziffer dieselbe Zahl ausgegeben wird.
Sie können die Wahrscheinlichkeit jeder Ziffer berechnen, indem Sie das -Q
Flag verwenden und es in dieses Python-Skript einfügen
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")]
Dies ist Codegolf, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
Ein Überblick über Lost
Lost ist eine umhüllende implizite IO-2D-Sprache, die sich stark an Klein orientiert. Hier ist eine kurze Übersicht, was verlorene Befehle bewirken
\
,/
,|
Spiegel der ip<
,^
,>
,v
Weist auf die ip in einer Richtung[
Reflektiert die IP, wenn sie sich nach Osten bewegt. wird,]
wenn sich die ip horizontal bewegt]
Reflektiert die IP, wenn sie sich nach Westen bewegt. wird,[
wenn sich die ip horizontal bewegt!
Überspringt den nächsten Vorgang?
Springt von der Oberseite des Stapels und springt, wenn nicht gleich Null:
Kopiert die Oberseite des Stapels$
Vertauscht die beiden obersten Gegenstände des Stapels(
Springt vom Stapel und stößt zum Zielfernrohr)
Springt aus dem Bereich und drückt auf den Stapel0
-9
drückt n nach oben auf den Stapel"
Startet und beendet ein String-Literal. Während einer Zeichenfolge werden keine Literalbefehle ausgeführt, sondern deren Zeichenwerte in den Stapel geschrieben.+
Fügt die oberen beiden Zahlen hinzu*
Multipliziert die oberen beiden Zahlen-
Multipliziert die Spitze mit -1%
Schaltet die Sicherheit aus#
Schaltet die Sicherheit ein@
Beendet die Ausführung, wenn die Sicherheit ausgeschaltet ist (beginnt an)
[]
fungieren als Türen, <>
weisen in Richtungen und ()
speichern und abrufen aus dem Bereich. Der Bereich wird zum Speichern von Werten verwendet.
@
oder hat sie andere Verwendungszwecke? Über Klammern, verstehe ich nicht , diesen Teil: becomes ] if the ip is moving horizontally
. Sich nach Osten zu bewegen ist auch horizontal, nicht wahr?