¡Aparentemente sí! En tres sencillos pasos.
Paso 1
Supongamos que f ( n ) denota la función de recuento de primos (número de primos menor o igual que n ).
Defina la secuencia entera s ( n ) de la siguiente manera. Para cada entero positivo n ,
- Iniciar t to n .
- Mientras t no sea primo ni 1, reemplace t por f ( t ) e itere.
- El número de iteraciones es s ( n ).
Se garantiza que el proceso iterativo finalizará porque f ( n ) < n para todo n .
Considere por ejemplo n = 25. Iniciamos t = 25. Como esto no es un primo ni 1, calculamos f (25), que es 9. Esto se convierte en el nuevo valor para t . Esto no es primo ni 1, por lo que continuamos: f (9) es 4. Continuamos nuevamente: f (4) es 2. Como es primo, nos detenemos aquí. Hemos realizado 3 iteraciones (de 25 a 9, luego a 4, luego a 2). Así s (25) es 3.
Los primeros 40 términos de la secuencia son los siguientes. La secuencia no está en OEIS.
0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 0 2 2 2
Paso 2
Dado un número entero positivo impar N , construya una matriz N × N (matriz) enrollando la secuencia finita s (1), s (2), ..., s ( N 2 ) para formar una espiral cuadrada hacia afuera . Por ejemplo, dado N = 5, la espiral es
s(21) s(22) s(23) s(24) s(25)
s(20) s(7) s(8) s(9) s(10)
s(19) s(6) s(1) s(2) s(11)
s(18) s(5) s(4) s(3) s(12)
s(17) s(16) s(15) s(14) s(13)
o, sustituyendo los valores,
3 3 0 3 3
3 0 2 2 2
0 1 0 0 0
1 0 1 0 1
0 2 2 2 0
Paso 3
Representa la matriz N × N como una imagen con un mapa de color gris, o con algún otro mapa de color de tu gusto. El mapa debe ser gradual, de modo que el orden de los números corresponda a un orden visualmente obvio de los colores. Los casos de prueba a continuación muestran algunos mapas de colores de ejemplo.
El reto
Dado un número entero positivo impar N , produzca la imagen descrita anteriormente.
Reglas
La espiral debe estar hacia afuera, pero puede estar en sentido horario o antihorario, y puede comenzar a moverse hacia la derecha (como en el ejemplo anterior), hacia la izquierda, hacia abajo o hacia arriba.
Las escalas de los ejes horizontal y vertical no necesitan ser las mismas. También las etiquetas de eje, la barra de colores y elementos similares son opcionales. Mientras se pueda ver claramente la espiral, la imagen es válida.
Las imágenes pueden emitirse por cualquiera de los medios estándar . En particular, la imagen puede mostrarse en la pantalla, o puede producirse un archivo de gráficos, o puede emitirse una matriz de valores RGB. Si genera un archivo o una matriz, publique un ejemplo de cómo se ve cuando se muestra.
Los medios de entrada y el formato son flexibles como de costumbre . Se puede proporcionar un programa o una función . Las lagunas estándar están prohibidas .
El código más corto en bytes gana.
Casos de prueba
Las siguientes imágenes (clic para una resolución total) corresponden a varios valores de N . Se utiliza una espiral en sentido horario, hacia la derecha, como en el ejemplo anterior. Las imágenes también ilustran varios mapas de colores válidos.
imshow
hace
imshow
hace eso.
s(n)
se puede alimentar a alguna función / paquete de trazado sin ser modificado (creo queimshow
en matplotlib podría manejar esto, por ejemplo) ¿es esta una forma de salida aceptable?