Introducción
Puedes conocer y amar tu círculo de unidad normal. Pero los matemáticos están locos y, por lo tanto, han abstraído el concepto a cualquier punto que les satisfaga x*x+y*y=1
. Debido a que los Criptógrafos 1 también son extraños, les encantan los campos finitos y, a veces, los anillos finitos (aunque no es que tengan muchas opciones), ¡así que combinemos esto!
El reto
Entrada
Un entero positivo mayor que uno en su codificación favorita. Llamemos a este número n.
Salida
Sacará la "imagen" (que consta de n veces n caracteres) del módulo de círculo de la unidad, el entero de entrada como ASCII-Art usando "X" (mayúscula X latina) y "" (un espacio). Se permiten espacios finales y líneas nuevas.
Más detalles
Debe abarcar un sistema de coordenadas de abajo a la izquierda a arriba a la derecha. Siempre que un punto cumpla con la ecuación circular, coloque una X en la posición; de lo contrario, coloque un espacio.
La condición para que un punto para ser considerado parte de la frontera del círculo es:
mod(x*x+y*y,n)==1
.
Aquí una ilustración rápida del sistema de coordenadas:
(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)
Si le ayuda, también puede invertir la dirección de cualquiera de los ejes, pero los ejemplos asumen esta orientación.
¿Quién gana?
Este es el código de golf, por lo que gana el código más corto en bytes. Solo se permiten los métodos de E / S predeterminados y se prohíben todas las lagunas estándar.
Ejemplos
Entrada: 2
X
X
Entrada: 3
X
X
XX
Entrada: 5
X
X
X X
Entrada: 7
X
X X
X X
X
X X
Entrada: 11
X
XX
X X
X X
XX
X
X X
Entrada: 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 Te sugiero que eches un vistazo a mi perfil si te estás preguntando aquí.