In einem Standardwürfel sind die Zahlen so angeordnet, dass sich gegenüberliegende Flächen zu sieben addieren. Schreiben Sie das kürzestmögliche Programm in Ihrer bevorzugten Sprache, das einen zufälligen Wurf gefolgt von 9 zufälligen Tipps ausgibt. Ein Tipp ist eine Vierteldrehung des Würfels. Wenn der Würfel z. B. auf 5 zeigt, sind alle möglichen Tipps 1,3,4 und 6.
Beispiel für die gewünschte Ausgabe:
1532131356
code-golf
random
repeated-transformation
steenslag
quelle
quelle
JavaScript (71 Zeichen)
Unter Umständen müssen Sie ersetzen
print
mitalert
oder etwas anderem, abhängig von Ihrer JavaScript - Umgebung.quelle
GolfScript, 28
quelle
Bash
Beispielcode: http://ideone.com/CCfro
quelle
((var=expression))
ist sehr nett - ich dachte, der kürzeste Weg wäre.var=$((expression))
Aber warum benutzt du das nur einmal und verschwendest Tonnen von Zeichen für Ausdruck in Backticks?R
56,52quelle
Bash mit nur einer Schleife:
100 99 9896http://ideone.com/XrZO7
Die Schlüsselidee ist, dass Sie eine Zufallszahl in [1, x], die nicht y entspricht, in [1, x-1] auswählen und dann inkrementieren können, wenn sie> = y ist. Für dieses Problem wollen wir eine Zufallszahl in [1,6], die nicht gleich f oder 7-f ist. Wir müssen die beiden Tests in der Reihenfolge min (f, 7-f), max (f, 7-f) durchführen.
Unter der Annahme, dass die Umgebung anfangs leer ist, könnten 2 Zeichen gespart werden, indem i nicht initialisiert und die Schleifenbedingung auf geändert wird
i++<10
quelle
Bash:
97 94 92 90 8987Aus Aman ZeeK Vermas Antwort:
http://ideone.com/QiuTx
NB: Möglicherweise kann es durch Ändern der ersten Zeile in um 5 Zeichen verkleinert werden,
for((;i++<10;))
aber dies führt zu Annahmen, die nicht immer gültig sind. In ideone würde es funktionieren, aber jemand, der es von einer Shell aus ausführt, könnte es habeni
oderf
in etwas exportieren, das nicht Null ist.quelle
man bash
haben, empfehle ich es. Ich habe es einmal von vorne bis hinten gelesen, und nur eine vage Vorstellung davon zu haben, was möglich und es wert ist, nachzuschlagen, hat mir gut getan.Windows PowerShell, 45
Eigentlich ziemlich trivial. Ich erstelle eine Liste möglicher Würfelwürfe
1..6
und wähle dann nur diejenigen aus, die nicht gleich sieben minus dem letzten Wurf sind, und dann nur diejenigen, die nicht gleich dem letzten Wurf sind. Aus der restlichen Liste wähle ich dann einen zufälligen Eintrag aus und ordne ihn zu$d
. Da$d
wird anfänglich behandelt, wie0
es ein normaler Würfel beim ersten Mal würfelt.Testskript:
Geschichte:
quelle
The term 'random' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
Get-Random
Cmdlet war in Version 1 nicht vorhanden.J
Dies sollte funktionieren, aber leider bleibt Js Zufallsgenerator nach der 3. Iteration hängen:
6 4 5 4 5 4 5 4 5 4
quelle
(?4)
in der Regel einmal gerollt und als Konstante für nachfolgende Iterationen behandelt wird, wenn Sie nicht vorsichtig sind. Ich habe es mit einem(?@4:)
ähnlichen Konstrukt umgangen.Rubin
66 Zeichen
quelle
J 30 Zeichen
6 2 3 5 4 2 4 1 3 6
Erläuterungen (von rechts nach links gelesen):
?6
Gibt eine Zufallszahl zwischen 0 und 5 zurück^:(<10)
Wendet eine Funktion neunmal an und sammelt dabei die Ergebnisse. Die Funktion ist:?@4:{(i.6)-.],5&-
] , 5&-
gibt ein Array der eingegebenen Zahl und deren Komplement zu 5 zurück (wir verarbeiten derzeit 0-basierte Zahlen, die Summe der gegenüberliegenden Flächen beträgt also 5)(i. 6) -.
Entfernt sie aus dem vollständigen Satz von Ganzzahlen von 0 bis 5. Nach einer einzigen Kippoperation von der Eingabeposition bleiben alle gültigen Positionen übrig.?@4: {
wählt zufällig eine davon aus.>:
Inkrementiert die gesamte Sequenz, um die Zahlen auf das Intervall von 1 bis 6 zurückzusetzen.quelle
GS2, 16 Bytes
So funktioniert das
quelle
QBasic (71 Zeichen)
Die beiden Zeilenumbrüche sind notwendig und werden in die Zeichenanzahl als jeweils ein Zeichen einbezogen.
quelle
TI-BASIC,
3834Langweilige Lösung, aber es ist kürzer als die vorherige Revision. Ich nutze die Tatsache, dass auf einem neuen Rechner
Ans
auf Null initialisiert wird.quelle
Java 8, 130 Bytes
Probieren Sie es hier aus.
Als vollständige Programm mit ausführlicher Haupt-Methode , dies wäre 178 Bytes statt:
Probieren Sie es hier aus.
Semi-Port von @AmanZeeKVermas Bash-Antwort .
Erläuterung:
quelle
MATLAB 58 Bytes
quelle
> <> 71 Bytes
Ich bin froh, dass ich die
x
Code-Pointer-Randomisierung von > <> präsentieren konnte, da ich mich nicht erinnere, sie hier gesehen zu haben.Sie können es mit diesem Online-Interpreter ausprobieren (Code einfügen, senden, starten).
quelle
R , 67 Bytes
Probieren Sie es online!
Es gibt eine Golfier R Antwort aber ich denke , ist ein anderer Ansatz von den bisher vorgelegten Antworten.
quelle
05AB1E , 23 Bytes
Kann auf jeden Fall Golf spielen, aber ich sehe es momentan nicht.
Probieren Sie es online aus.
Erläuterung:
quelle