Heute, als ich mit meinen Kindern spielte, bemerkte ich, dass ein scheinbar einfaches Spielzeug im Park eine Herausforderung verbarg.
Das Rad hat ein Dreieck, das auf eine Zahl zeigt, aber auch drei Kreise, die alle 90 Grad von der ersten auf die Zahlen zeigen. So:
Herausforderung (ganz einfach)
Geben Sie bei einer Ganzzahl zwischen 1 und 12 (die durch das Dreieck angezeigte Zahl) in einer beliebigen zulässigen Form auch in einer beliebigen zulässigen Form aus und ordnen Sie die drei durch die Kreise angezeigten Zahlen (die Zahlen alle 90 Grad).
Testfälle
In Out
1 4, 7, 10
2 5, 8, 11
3 6, 9, 12
4 7, 10, 1
5 8, 11, 2
6 9, 12, 3
7 10, 1, 4
8 11, 2, 5
9 12, 3, 6
10 1, 4, 7
11 2, 5, 8
12 3, 6, 9
Das ist Code-Golf , also kann der kürzeste Code für jede Sprache gewinnen!
0 -> 4, 7, 10
?Antworten:
Python 3 , 33 Bytes
Probieren Sie es online!
Python 2 , 35 Bytes
Probieren Sie es online!
quelle
Gelee , 8 Bytes
Ein monadischer Link, der eine Nummer aufnimmt und eine Liste von Nummern zurückgibt.
Probieren Sie es online! oder alle Fälle sehen .
Wie?
quelle
12Rṙm-3Ḋ
(Ausgabe in umgekehrter Reihenfolge)Python 2 , 35 Bytes
Probieren Sie es online!
quelle
MATL , 9 Bytes
Probieren Sie es online!
Erläuterung
Betrachten Sie die Eingabe
4
als Beispiel.quelle
R ,
2928 BytesVielen Dank an @ Giuseppe für das Speichern eines Bytes!
Probieren Sie es online!
quelle
APL + WIN, 13 Byte
Erläuterung:
quelle
C (gcc) , 48 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 29 Byte
Ähnlich wie die Antwort von xnor .
Demo
Code-Snippet anzeigen
quelle
n=>[3,6,9].map(v=>(v+n)%12)
dann festgestellt, dass es 0 zurückgibt, nicht 12 ...n=>[3,6,9].map(v=>(v+n)%12||12)
(aber das sind 31 Bytes).Oktave , 25 Bytes
Probieren Sie es online!
Ziemlich einfache anonyme Funktion.
Wir erstellen zunächst ein Array von
[1:12 1:12]
- also zwei Kopien des vollständigen Nummernsatzes. Dann indexieren wir in, um die Werte von auszuwählenx+3, x+6, x+9
, wobeix
die Zahleneingabe ist.Octave ist 1-indiziert, daher können wir die Array-Elemente einfach basierend auf der Eingabe auswählen (obwohl 0-indiziert hier die gleiche Anzahl von Bytes verwenden würde).
Dies scheint eine Methode zu verwenden, die einzigartig für die anderen Antworten ist, da bei zwei Kopien des Arrays die Indizes nicht mit Modulo umbrochen werden müssen.
quelle
mod
und konnte es nicht kürzer machen. Gut gemacht! Fühlen Sie sich frei, als Antwort zu posten.Befunge-93,
201918 BytesProbieren Sie es online!
Erläuterung
Dies hängt vom Verhalten des Referenzinterpreters ab: Am Ende der Datei gibt der
&
Operator den zuletzt gelesenen Wert zurück. Aus diesem Grund können wir die Stunde bei jeder Iteration der Schleife sicher von stdin neu ablesen.quelle
&
nicht&
kann auch als eine Art Zufallszahlengenerator verwendet werden . Das ist jedoch weniger zuverlässig, da es vom Compiler abhängt, mit dem es erstellt wurde. Momentan arbeitet es an TIO, aber es gab eine Zeit, in der Dennis auf eine andere Version von gcc umgestiegen ist und wir diese Funktionalität für eine Weile verloren haben.APL (Dyalog) , 12 Bytes
Probieren Sie es online!
quelle
Japt, 11 Bytes
Versuch es
Erläuterung
Implizite Eingabe einer Ganzzahl
U
. Generieren Sie ein 3-Element-Array (3Æ
) und erhöhen Sie für jedes ElementU
um 3 (U±3
), modulo um 12 (uC
) und12%12=0
geben Sie das Ergebnis OR 12 (ªC
) zurück.quelle
Brain-Flak , 84 Bytes
Probieren Sie es online!
Zumindest habe ich Doorknobs Gesichtslösung geschlagen ...
Erläuterung:
quelle
Pyth , 12 Bytes
Probieren Sie es online!
quelle
SOGL V0.12 , 9 Bytes
Probieren Sie es hier aus!
quelle
Sauber , 44 Bytes
Probieren Sie es online!
quelle
Aufdringlich , 12 Bytes
Probieren Sie es online!
12 Bytes
Eine Alternative für die gleiche Byteanzahl:
Probieren Sie es online!
quelle
C # (.NET Core) , 42 Byte
Probieren Sie es online!
Im Wesentlichen nur ein Port von vielen der anderen Antworten auf C #.
quelle
K (oK) , 11 Bytes
Lösung:
Probieren Sie es online!
Beispiele:
Erläuterung:
Dies war die erste Lösung, die mir in den Sinn kam. Könnte nicht die beste oder kürzeste sein.
quelle
GolfScript, 46 Bytes
Dies ist das erste Mal, dass ich Codegolf spiele. Aufgrund meiner mangelnden Erfahrung habe ich wahrscheinlich nicht die beste Lösung gefunden, aber ich muss irgendwo anfangen, oder?
Probieren Sie es online aus oder probieren Sie alle Fälle aus
quelle
Perl 6 , 23 Bytes
Probieren Sie es online!
quelle
PHP, 37 + 1 Bytes
Laufen Sie als Pipe mit
-nR
oder probieren Sie es online aus .quelle
Gesicht ,
9694 BytesDies fügt einfach zwei Mods zu 12 hinzu, fügt einen weiteren hinzu und druckt. Dann macht es das noch zweimal.
Kommentierte Version:
Probieren Sie es online! (Der nachgestellte Zeilenumbruch ist für TIO aufgrund eines Fehlers erforderlich, der in einer neueren Version von face behoben wurde.)
quelle
m3*33
können Sie die drei+nn1
s durch eins ersetzen.+nn3
Tio.run/…Forth (gforth) , 39 Bytes
Die Eingabe wird vom Stapel genommen und die Ausgabe wird auf den Stapel gelegt
Probieren Sie es online!
Erläuterung
quelle
Haskell , 29 Bytes
-2 Bytes dank Laikoni.
Probieren Sie es online!
Nicht sehr originell, nein ...
quelle
Schnell , 30 Bytes
Probieren Sie es online!
Port von vielen anderen Antworten auf Swift
quelle
Wolfram Language (Mathematica) 35 Bytes
Das oben Gesagte behauptet in der Infixnotation, was deutlicher ausgedrückt werden kann als
RotateLeft
drehtRange[12]
die Sequenz 1,2, ... 12 um die eingegebene Nummer nach links.Slot[1]
oder#
enthält die eingegebene Nummer, n.Zum Beispiel mit n = 4,
gibt die Liste zurück
Take...{3,9,3}
Gibt jedes dritte Element in dieser Liste von Position 3 bis Position 9 zurück, nämlichquelle
Windows Batch,
137 125 11168 BytesHafen der
add value to input and mod 12 + 1
quelle
Perl 5 , 30 Bytes
Probieren Sie es online!
quelle
PowerShell , 30 Byte
Probieren Sie es online!
Port der anderen Antworten (z. B. Python 2-Antwort von xnor). Ho-hum.
quelle