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?Antworten:
81101 BytesDies könnte weiter golfen werden ...
Probieren Sie es online!
quelle
0
hat eine 7/101-Chance, gedruckt zu werden (einer der<
oder^
unter seinem Block sowie das Symbol>
und%
),1
-8
hat eine 10/101-Chance und9
eine 11/101-Chance. Dann sieht es so aus, als ob es eine Chance geben könnte, dass es für immer weitergeht.Verloren , 54 Bytes
Probieren Sie es online!
Einfach aus der Antwort von pppery kopieren und ein paar zufällige Sachen machen. Ich weiß nichts über verlorene Sprache. Und ich weiß auch nicht, was mit den obigen Codes passiert. Ist das Arbeit? (Ich weiß es nicht)
quelle
-Q
funktioniert? Die Ausgabe scheint ohnehin normal verteilt zu sein. Es wäre schön gewesen, eine vollständige Spezifikation der in der Frage verknüpften Sprache zu haben.-Q
funktioniert. Da die Sprache zufällig ist, wird die Überprüfung durchgeführt, indem alle Möglichkeiten ausgeführt werden.-Q
führt dies aus und druckt alle Ergebnisse aus. Je kürzer das Programm ist, desto weniger Möglichkeiten gibt es und desto weniger Ausgaben kommen von-Q
.