Introducción
La secuencia de Gijswijt ( A090822 ) es realmente famosa, REALMENTE lenta. Para ilustrar:
- Los primeros 3 aparecen en el noveno término (está bien).
- Los primeros 4 aparecen en el término 220 (muy lejos, pero factible).
- Los primeros 5 aparecen en (aproximadamente) el término 10 ^ (10 ^ 23) (solo no).
- Nadie sabe realmente dónde están los primeros 6 ... se sospecha que está en el ...
2 ^ (2 ^ (3 ^ (4 ^ 5))) th término.
Puede suponer que no tendrá que lidiar con un número de dos dígitos.
La secuencia se genera así:
- El primer término es 1.
- Cada término después de eso es la cantidad de "bloques" repetidos anteriores (si hay múltiples "bloques" repetidos, se usa la mayor cantidad de bloques repetidos).
Para aclarar, aquí están los primeros términos.
1 -> 1, 1
(un bloque repetitivo ( 1
), por lo que el dígito registrado es 1
)
1, 1 -> 1, 1, 2
(dos bloques repetidos ( 1
), por lo que el dígito registrado es 2
)
1, 1, 2 -> 1, 1, 2, 1
(un bloque repetitivo ( 2
o 1, 1, 2
), por lo que el dígito registrado es 1
)
1, 1, 2, 1 -> 1, 1, 2, 1, 1
(entiendes la idea)
1, 1, 2, 1, 1 -> 1, 1, 2, 1, 1, 2
1, 1, 2, 1, 1, 2 -> 1, 1, 2, 1, 1, 2, 2
(dos bloques repetidos ( 1, 1, 2
), por lo que el dígito registrado es 2
)
Tarea
Su tarea es, como se indica en la pregunta, generar n dígitos de la secuencia de Gijswijt.
Instrucciones
- La entrada será un número entero
n
. - Su código puede generar los dígitos en cualquier forma (una lista, múltiples salidas, etc.).
Este es el código de golf, por lo que gana el código más corto en bytes.
._
función y otras funciones útiles en Pyth.