Este es un reenvío de un viejo desafío , con el fin de ajustar los requisitos de E / S a nuestros estándares recientes. Esto se hace en un esfuerzo por permitir que más idiomas participen en un desafío sobre esta secuencia popular. Vea esta meta publicación para una discusión de la nueva publicación.
La secuencia de Kolakoski es una secuencia divertida autorreferencial, que tiene el honor de ser la secuencia OEIS A000002 (y es mucho más fácil de entender e implementar que A000001). La secuencia se inicia con 1 , se compone sólo de 1 s y 2 s y el elemento de secuencia de un (n) describe la longitud de la n º plazo de 1 s o 2 s en la secuencia. Esto define de forma única la secuencia que debe ser (con una visualización de las ejecuciones debajo):
1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,...
= === === = = === = === === = === === = = === = = === === = === =
1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1,1, 2, 2, 1, 2, 1,...
Su tarea es, por supuesto, implementar esta secuencia. Puede elegir uno de los tres formatos para hacerlo:
- Tome una entrada n y la salida de la n º término de la secuencia, donde n comienza ya sea desde 0 o 1 .
- Tome una entrada n y la salida de los términos hasta e incluyendo el n º término de la secuencia, donde n comienza ya sea desde 0 o 1 (es decir, imprimir o bien la primera n o la primera n + 1 términos).
- Valores de salida de la secuencia indefinidamente.
En el segundo y tercer caso, puede elegir cualquier formato de lista razonable y sin ambigüedades. Está bien si no hay un separador entre los elementos, ya que siempre son un solo dígito por definición.
En el tercer caso, si su envío es una función, también puede devolver una lista infinita o un generador en idiomas que los admitan.
Puede escribir un programa o una función y utilizar cualquiera de nuestros métodos estándar para recibir entradas y proporcionar salidas. Tenga en cuenta que estas lagunas están prohibidas por defecto.
Este es el código de golf , por lo que gana la respuesta válida más corta, medida en bytes .