introduzione
Potresti conoscere e amare il tuo normale cerchio unitario. Ma i matematici sono pazzi e quindi hanno sottratto il concetto a qualsiasi punto che soddisfi x*x+y*y=1
. Poiché anche i Cryptographers 1 sono strani, amano i campi finiti e talvolta gli anelli finiti (non è come se avessero molta scelta), quindi uniamo questo!
La sfida
Ingresso
Un numero intero positivo maggiore di uno nella codifica preferita. Chiamiamo questo numero n.
Produzione
Verrà emessa la "immagine" (che consiste di n volte n caratteri) del cerchio unitario del modulo intero di input come ASCII-Art usando "X" (X maiuscola) e "" (uno spazio). Sono consentiti spazi finali e newline.
Più dettagli
Devi estendere un sistema di coordinate da in basso a sinistra a in alto a destra. Ogni volta che un punto soddisfa l'equazione del cerchio, posiziona una X nella posizione, altrimenti posiziona uno spazio.
La condizione per un punto da considerare parte del bordo cerchio è:
mod(x*x+y*y,n)==1
.
Ecco una breve illustrazione del sistema di coordinate:
(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)
Se ti aiuta, puoi anche invertire la direzione di uno qualsiasi degli assi, ma gli esempi assumono questo orientamento.
Chi vince?
Questo è code-golf quindi vince il codice più corto in byte! Sono ammessi solo i metodi I / O predefiniti e sono vietate tutte le scappatoie standard.
Esempi
Ingresso: 2
X
X
Ingresso: 3
X
X
XX
Ingresso: 5
X
X
X X
Ingresso: 7
X
X X
X X
X
X X
Ingresso: 11
X
XX
X X
X X
XX
X
X X
Ingresso: 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 Ti suggerisco di dare un'occhiata al mio profilo se ti stai chiedendo qui.