Der Zweck dieser Herausforderung besteht darin, einen Gang in der Ebene grafisch darzustellen, wobei die Richtung jedes Schritts durch die Primalität von und die Parität seiner binären Expansion bestimmt wird. Speziell,
- Die anfängliche Richtung ist festgelegt, etwa nach Norden.
- Alle Stufen haben die gleiche Länge .
- Die Richtung von Schritt kann Nord, West, Süd oder Ost sein und wird wie folgt bestimmt:
- Wenn nicht prim ist, ändert sich die Richtung nicht.
- Wenn eine Primzahl ist und die binäre Expansion von eine gerade Anzahl von Einsen hat, biege nach rechts ab.
- Wenn eine Primzahl ist und die binäre Expansion von eine ungerade Anzahl von Einsen hat, biege links ab.
Nehmen Sie als Beispiel an , dass die Anfangsrichtung Nord ist. Die ersten Schritte sind:
- ist keine Primzahl. Wir bewegen uns also einen Schritt in Richtung Norden.
- ist eine Primzahl, und ihre binäre Expansion
10
hat eine ungerade Anzahl von Einsen. Also biegen wir links ab und sind jetzt nach Westen ausgerichtet. Wir gehen einen Schritt in diese Richtung. - ist eine Primzahl, und ihre binäre Expansion
11
hat eine gerade Anzahl von Einsen. Wir biegen also rechts ab und sind jetzt nach Norden ausgerichtet. Wir gehen einen Schritt in diese Richtung. - ist keine Primzahl. Wir bewegen uns also einen Schritt in Richtung Norden.
Die Herausforderung
Input : positive ganze Zahl .
Ausgabe : Darstellung des oben definierten Schritt-Wegs.
Zusätzliche Regeln
- Die Anfangsrichtung kann frei gewählt werden (nicht unbedingt Nord), sollte aber für alle .
- Die Wende-Regel kann der oben beschriebenen entgegengesetzt sein, dh für ungerade Parität nach rechts und für gerade nach links drehen; aber es muss für alle .
- Die Ausgabe muss eine grafische Darstellung des Weges sein. Zum Beispiel:
- Der Weg kann mit Liniensegmenten gezeichnet werden.
- Die besuchten Punkte können mit einer Markierung angezeigt werden, z. B. einem Punkt. mit oder ohne Verbindungsliniensegmente.
- Es kann ein zweifarbiges Rasterbild bereitgestellt werden, wobei eine Farbe besuchten Punkten und eine andere Farbe nicht besuchten Punkten entspricht.
- Die Maßstäbe der horizontalen und vertikalen Achse müssen nicht identisch sein. Auch Achsenbeschriftungen und ähnliche Elemente sind optional. Solange der Weg gut sichtbar ist, ist die Handlung gültig.
- Beachten Sie, dass einige Punkte mehrmals besucht werden. Die Handlung reagiert darauf nicht. Wenn zum Beispiel Liniensegmente im Plot angezeigt werden, wird jedes Einheitensegment gleich angezeigt, unabhängig davon, wie oft es durchlaufen wurde.
- Der Code sollte für alle
N
gegebenen unbegrenzten Ressourcen funktionieren . Es ist akzeptabel, wenn in der PraxisN
aufgrund von Zeit-, Speicher- oder Datentypbeschränkungen ein großer Fehler auftritt. - Ein- und Ausgabe sind wie gewohnt flexibel. Insbesondere kann jedes der Standardmittel zum Ausgeben von Bildern verwendet werden.
- Der kürzeste Code in Bytes gewinnt.
Testfälle
In den folgenden Darstellungen wird Nord als Anfangsrichtung verwendet. gerade Parität geht nach rechts; und der Weg ist mit Liniensegmenten dargestellt.
N = 7
:
N = 3000
:
N = 20000
:
N = 159000
:
N = 1200000
:
N = 11000000
:
[graphical-output]
erlaubt ist? Gibt es einen Grund, wie meine jetzt gelöschte Charcoal-Antwort, die ASCII-Ausgabe zu deaktivieren?