Nehmen Sie die Zahlen 0, 1, 2, 3, 4, ...
und ordnen Sie sie im Uhrzeigersinn an. Beginnen Sie nach unten und schreiben Sie jede Ziffer in ein eigenes Quadrat.
Geben Sie dann bei einem von vier unterschiedlichen und konsistenten ASCII-Zeichen (Ihrer Wahl), die eine Achse darstellen, und einer Eingabe-Ganzzahl n
die ersten n
Terme der beschriebenen Sequenz aus, indem Sie Quadrate entlang der entsprechenden Achse auswählen.
Zum Beispiel ist unten die angeordnete Spirale bis zur Mitte durch 29
. Angenommen, wir verwenden u / d / l / r
für unsere vier Zeichen, die darstellen up / down / left / right
. Dann geben u
wir als Eingabe 0, 5, 1, 4 ...
(die positive y-Achse) bis zum n
dritten Term aus. Wenn wir stattdessen l
als Input gegeben würden, wäre es 0, 3, 1, 1 ...
bis zum n
dritten Term.
2---3---2---4---2---5---2
| |
2 1---3---1---4---1 6
| | | |
2 2 4---5---6 5 2
| | | | | |
1 1 3 0 7 1 7
| | | | | | |
2 1 2---1 8 6 2
| | | | |
0 1---0---1---9 1 8
| | |
2---9---1---8---1---7 2
Dies sind Sequenzen auf OEIS:
- http://oeis.org/A033953 für die positive x-Achse
- http://oeis.org/A033988 für die positive y-Achse
- http://oeis.org/A033989 für die negative x-Achse
- http://oeis.org/A033990 für die negative y-Achse
Beispiele
d 19
[0, 1, 1, 8, 3, 7, 6, 2, 1, 5, 1, 1, 6, 2, 2, 1, 3, 4, 0]
r 72
[0, 7, 1, 7, 4, 2, 8, 1, 1, 3, 1, 2, 0, 2, 3, 1, 3, 4, 6, 5, 5, 5, 7, 7, 8, 8, 9, 6, 8, 1, 1, 1, 2, 3, 1, 8, 0, 6, 1, 7, 0, 9, 2, 8, 4, 3, 2, 1, 1, 7, 2, 6, 2, 1, 3, 3, 5, 5, 3, 2, 2, 0, 4, 3, 2, 5, 4, 6, 5, 0, 5, 1]
u 1
[0]
Regeln
- Falls zutreffend, können Sie davon ausgehen, dass die Eingabe / Ausgabe in den nativen Integer-Typ Ihrer Sprache passt.
- Wenn Sie Ganzzahlen verwenden, um die vier Achsen darzustellen, können Sie negative Ganzzahlen verwenden, ohne die Regeln zu verletzen.
- Die Eingabe und Ausgabe kann durch jede bequeme Methode erfolgen .
- Entweder ein vollständiges Programm oder eine Funktion sind akzeptabel. Wenn es sich um eine Funktion handelt, können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Standardlücken sind verboten.
- Dies ist Code-Golf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Bytes) gewinnt.
quelle
Antworten:
Python 2 ,
94898483747270 BytesIch habe WolframAlpha verwendet und festgestellt, dass eine Obergrenze von 5 n > 4n 2 + 3n ausreichend zu sein scheint. Es kann kostenlos auf 9 n geändert werden . Verwenden Sie zum Ausprobieren größerer Eingaben
9*n*n
anstelle von5**n
, um zu vermeiden, dass der Speicher knapp wird.Probieren Sie es online aus!
Die Eingaben für Anweisungen sind:
Gespeichert 14 Bytes dank Rod
Gespeichert 2 Bytes dank Jonathan Allan
quelle
MATL , 32 Bytes
Die Eingabe ist
n
,a
wobeia
die Achse wie folgt dargestellt wird:0
: links;1
: up;2
: richtig;3
: Nieder.Die Ausgabe ist eine Zeichenfolge.
Probieren Sie es online aus! Oder überprüfen Sie alle Testfälle .
quelle
Gelee ,
1918 BytesVerwendet den 5 n- Trick aus der Python-Antwort von mbomb007
Eine dyadische Verbindung
n
linksd
und eine ganze Zahl von:[-3,-1,1,3]:[v,<,^,>]
Probieren Sie es online aus!
Eine 20-Byte-Alternative, die sowohl viel schneller ist als auch für ein so kleines n keinen Fehler aufweist, ist:
Probieren Sie es online aus!
Wie?
quelle
wird für beträchtliche n arbeiten (wie +1000)
JavaScript (Node.js) , 104 Bytes
Probieren Sie es online aus!
Erläuterung
C-te Ziffer der Champernowne-Konstante
________________________________________________________
Weniger effiziente Methode (funktioniert nicht für 1000+)
JavaScript (Node.js) , 81 Byte
Probieren Sie es online aus!
quelle
Stax, 13 bytes
Run and debug it
It takes input with the direction, followed by the count. Right, up, left, and down are
1
,3
,5
, and7
respectively. It takes a full minute to run the three provided test cases.quelle