El propósito de este desafío es representar gráficamente una caminata en el plano, donde la dirección de cada paso está determinada por la primalidad de y la paridad de su expansión binaria. Específicamente,
- La dirección inicial es fija, digamos Norte.
- Todos los pasos tienen la misma longitud .
- La dirección del paso puede ser Norte, Oeste, Sur u Este, y se determina de la siguiente manera:
- Si no es primo, la dirección no cambia.
- Si es primo y la expansión binaria de tiene un número par, gire a la derecha.
- Si es primo y la expansión binaria de tiene un número impar, gire a la izquierda.
Como ejemplo trabajado , suponga que la dirección inicial es Norte. Los primeros pasos son:
- no es primo. Entonces nos movemos un paso en la dirección actual, que es Norte.
- es primo, y su expansión binaria
10
, tiene un número impar de unidades. Entonces giramos a la izquierda y ahora estamos mirando hacia el oeste. Nos movemos un paso en esa dirección. - es primo, y su expansión binaria
11
, tiene e incluso un número de unos. Entonces giramos a la derecha y ahora estamos mirando al norte. Nos movemos un paso en esa dirección. - no es primo. Entonces nos movemos un paso en la dirección actual, que es Norte.
El reto
Entrada : entero positivo .
Salida : diagrama de la caminata -step como se definió anteriormente.
Reglas adicionales
- La dirección inicial se puede elegir libremente (no necesariamente del Norte), pero debe ser el mismo para todos .
- La regla de giro puede ser la opuesta a la descrita anteriormente, es decir, girar a la derecha para paridad impar y a la izquierda para par; pero tiene que ser el mismo para todos los .
- La salida tiene que ser una representación gráfica de la caminata. Por ejemplo:
- La caminata se puede dibujar con segmentos de línea.
- Los puntos visitados se pueden mostrar con un marcador, como un punto; con o sin segmentos de línea de conexión.
- Se puede proporcionar una imagen ráster de dos colores, con un color correspondiente a los puntos visitados y otro para los no visitados.
- Las escalas de los ejes horizontal y vertical no necesitan ser las mismas. También las etiquetas de eje y elementos similares son opcionales. Mientras la caminata se pueda ver claramente, la trama es válida.
- Tenga en cuenta que algunos puntos se visitan más de una vez. La trama no es sensible a esto. Por ejemplo, si los segmentos de línea se muestran en el gráfico, cada segmento de unidad se muestra igual sin importar cuántas veces se haya recorrido.
- El código debería funcionar para cualquier
N
recurso ilimitado dado. Es aceptable si en la práctica falla por muchoN
tiempo debido a limitaciones de tiempo, memoria o tipo de datos. - La entrada y la salida son flexibles como de costumbre. En particular, se puede utilizar cualquiera de los medios estándar para generar imágenes.
- El código más corto en bytes gana.
Casos de prueba
Las siguientes parcelas usan el norte como dirección inicial; incluso la paridad gira a la derecha; y la caminata se representa con segmentos de línea.
N = 7
:
N = 3000
:
N = 20000
:
N = 159000
:
N = 1200000
:
N = 11000000
:
[graphical-output]
esté permitida? ¿Alguna razón en particular para la salida ASCII no permitida, como mi respuesta Charcoal ahora eliminada?