Ihre Aufgabe ist es, ein Programm zu erstellen, das Zufallszahlen zu früheren Summen im ultimativen Showdown für Zahlenrennen hinzufügt.
Jeder Rennfahrer (Spalte) startet bei 0 und addiert bei jedem Schritt des Rennens entweder 1 oder 0 zur vorherigen Summe, bis alle Rennfahrer die zum Gewinnen erforderliche Punktzahl erreicht haben. Die 1 oder 0 sollte zufällig ausgewählt werden (die Standarddefinition für zufällig finden Sie hier ). Die Ausgabe zeigt das Ergebnis des Rennens, wobei jede Spalte einen Rennfahrer in diesem Format darstellt:
>> racers:5,score needed:2
0 0 0 0 0 # all racers start at 0
+ + + + + # add
1 0 0 0 1 # random 1 or 0
= = = = = # equals
1 0 0 0 1 # sum
+ + + + +
0 0 0 0 1
= = = = =
1 0 0 0 2 # winner!
+ + + +
1 1 1 1
= = = =
2 1 1 1
+ + +
1 1 1
= = =
2 2 2 # losers
Hinweis: Nur die Zahlen + und = müssen in der Ausgabe enthalten sein.
Eingang
Ihr Programm akzeptiert die folgenden zwei Parameter als Eingabe:
- die Anzahl der Rennfahrer (Spalten), die größer als zwei sein muss
- Die zum Gewinnen erforderliche Punktzahl muss größer als eins sein
Dies ist Code-Golf - das Programm mit den wenigsten Bytes gewinnt.
Bearbeiten: Es gibt eine nicht durchsetzbare maximale Punktzahl von 9 - dies dient dazu, die Integrität der Spalte zu erhalten. Außerdem können Leerzeichen zwischen Spalten in der Ausgabe weggelassen werden.
Antworten:
Gelee,
373633 Bytes3 Bytes dank Dennis.
Probieren Sie es online aus
Erläuterung
quelle
,‘X
(Paar mit inkrementiertem n , zufällige Auswahl). Im Hauptlinkṫ2
kann durchḊ
(Dequeue) und”
durch die Variable ersetzt werden⁶
.Pyth ,
3834 BytesProbieren Sie es online aus!
quelle
TSQL,
367345341 BytesGolf gespielt
Probieren Sie es online aus
Ungolfed:
Beachten Sie, dass der zufällige Startwert auf der Teststelle immer derselbe ist und jedes Mal das gleiche Ergebnis liefert. In der Studiomanagement werden unterschiedliche Ergebnisse erzielt. Kann unterschiedliche Werte für Rennfahrer und Ziel verwenden, um ein anderes Bild zu erhalten
quelle
Python 3, 237 Bytes
Eine Funktion, die Eingaben über Argumente entgegennimmt und in STDOUT druckt. Dieser Ansatz nutzt die Tatsache, dass die Ausgabe für alle Rennfahrer einem Zyklus der vierten Periode in der Form '+ Wert = Wert' folgt. Mit einem Zähler Modulo 4 kann eine Liste mit dem gewünschten Wert für jeden Schritt als Zeichenfolge indiziert und das Ergebnis mit der Bewertungsfunktion von Python ausgewertet werden.
Wie es funktioniert
Probieren Sie es auf Ideone
quelle
Python 2 , 191 Bytes
Probieren Sie es online aus!
Python 3 , 200 Bytes
Probieren Sie es online aus!
quelle
Python 2, 278 Bytes
wo r ist die Nr. von Rennfahrern und w ist die Punktzahl zu gewinnen
Probieren Sie es hier aus!
quelle
Perl 5 , 150 Bytes
Probieren Sie es online aus!
Die erste Eingabe ist die Anzahl der Rennfahrer, die zweite die erforderliche Punktzahl.
quelle