Einführung
Sie können Ihren normalen Einheitskreis kennen und lieben. Aber Mathematiker sind verrückt und haben das Konzept so weit abstrahiert, dass es befriedigt x*x+y*y=1
. Da Kryptographen 1 auch komisch sind, lieben sie endliche Felder und manchmal endliche Ringe (es ist jedoch nicht so, als hätten sie eine große Auswahl), also kombinieren wir dies!
Die Herausforderung
Eingang
Eine positive ganze Zahl größer als eine in Ihrer Lieblingskodierung. Nennen wir diese Nummer n.
Ausgabe
Sie geben das "Bild" (das aus n mal n Zeichen besteht) des Einheitskreises aus, indem Sie die eingegebene Ganzzahl als ASCII-Art mit "X" (lateinisches Großbuchstaben X) und "" (ein Leerzeichen) modulieren. Leerzeichen und Zeilenumbrüche sind erlaubt.
Mehr Details
Sie müssen ein Koordinatensystem von links unten nach rechts oben überspannen. Wenn ein Punkt die Kreisgleichung erfüllt, platzieren Sie ein X an der Position, andernfalls platzieren Sie ein Leerzeichen.
Die Bedingung für einen Punkt ein Teil der Kreisgrenze betrachtet werden soll:
mod(x*x+y*y,n)==1
.
Hier eine kurze Darstellung des Koordinatensystems:
(0,4)(1,4)(2,4)(3,4)(4,4)
(0,3)(1,3)(2,3)(3,3)(4,3)
(0,2)(1,2)(2,2)(3,2)(4,2)
(0,1)(1,1)(2,1)(3,1)(4,1)
(0,0)(1,0)(2,0)(3,0)(4,0)
Wenn es Ihnen hilft, können Sie auch die Richtung einer der Achsen umkehren, aber die Beispiele nehmen diese Ausrichtung an.
Wer gewinnt?
Das ist Code-Golf, also gewinnt der kürzeste Code in Byte! Es sind nur die Standard-E / A-Methoden zulässig, und alle Standardlücken sind gesperrt.
Beispiele
Eingabe: 2
X
X
Eingabe: 3
X
X
XX
Eingabe: 5
X
X
X X
Eingabe: 7
X
X X
X X
X
X X
Eingabe: 11
X
XX
X X
X X
XX
X
X X
Eingabe: 42
X
X X
X X
X X
X X
X
X X X X
X X X X
X
X X
X X
X X
X X
X
X X X X
X
X X
X X
X X
X X
X
X X X X
X X X X
X
X X
X X
X X
X X
X
X X X X
1 Ich schlage vor, Sie werfen einen Blick auf mein Profil, wenn Sie sich hier wundern.