Considere la siguiente secuencia:
1, 0, 1, 2, 4, 1, 6, 8, 0, 1, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 0, 1, ...
Los dígitos pares comienzan desde 0 y se agrupan en series de longitud creciente. Se organizan cíclicamente, lo que significa que se ordenan en orden ascendente hasta alcanzar 8 y luego se vuelven a poner en ciclo desde 0 . 1 separa las corridas de dígitos pares, y también comienza la secuencia. Visualicemos cómo se forma esta secuencia:
1, 0, 1, 2, 4, 1, 6, 8, 0, 1, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 1, ...
- ---- ------- ---------- -------------
run length: 1 2 3 4 5 ...
position of 1: X X X X X X ...
even sequence: 0, 2, 4, 6, 8, 0, 2, 4, 6, 8, 0, 2, 4, 6, 8 ...
Métodos de entrada y salida aceptables:
Recibe un número entero N como entrada y salida de la N º término de esta secuencia.
Reciba un entero N como entrada y salida de los primeros N términos de esta secuencia.
Imprime la secuencia indefinidamente.
Puede elegir 0 o 1 indexación para los dos primeros métodos.
Puede competir en cualquier lenguaje de programación , mientras usa los métodos estándar de entrada y salida . Las lagunas estándar están prohibidas. Este es el código de golf , por lo que gana el código más corto en cada idioma.

Respuestas:
Haskell ,
5046 bytesPruébalo en línea!
1#cycle[0,2..8]devuelve la secuencia como lista infinita.-4 bytes gracias a Ørjan Johansen!
fuente
#solo un número. Pruébalo en línea!Jalea , 10 bytes
Devuelve el primero n elementos de la secuencia.
Pruébalo en línea!
Cómo funciona
fuente
Unhalve... ¿No es eso justoDouble?Hes la mitad , por lo queḤes unhalve .ÆAes arcocosina , por lo queÆẠes unarccosina .Casco ,
121110 bytesPruébalo en línea!
Imprime la secuencia indefinidamente.
Alternativamente:
Pruébalo en línea!
Explicación
Para la solución alternativa:
También podríamos hacerlo
...ΘCN..., porqueΘ"antepone el elemento predeterminado", que antepone un cero para las listas de enteros y una lista vacía para las listas de listas.fuente
Python 3 , 52 bytes
Toma un índice basado en 1 y devuelve True o un flotante integral .
Pruébalo en línea!
fuente
Python 2 , 51 bytes
Imprime toda la secuencia.
Pruébalo en línea!
fuente
APL, 25 bytes
Devuelve el enésimo término.
Explicación
fuente
APL (Dyalog Unicode) ,
525956 bytesPruébalo en línea!
Este es un tradfn ( trad itional f unctio n ) teniendo un argumento
ky devolver la primerakelementos de la secuencia.Gracias a @GalenIvanov por señalar un error en la función. Gracias a @ Adám por 3 bytes.
Cómo funciona:
A continuación se presentan
Dfn( d directo teléfono f unctio n ) y una función tácito de que también a resolver el reto, tanto amablemente proporcionado por @ ADAM.{⍵⍴1,∊1,⍨¨j⍴¨(+\¯1+j←⍳⍵)⌽¨⊂0,2×⍳4}Pruébalo en línea!⊢⍴1,∘∊1,⍨¨⍳⍴¨(⊂0,2×⍳4)⌽⍨¨(+\¯1+⍳)Pruébelo en línea!fuente
JavaScript (ES6),
625452 bytesDevuelve el N º término de la secuencia, 0-indexados.
Manifestación
Mostrar fragmento de código
fuente
C (gcc), 84 bytes
Pruébalo en línea!
Una función (
f()) que imprime la secuencia infinitamente, separada por espacios.ies la longitud de la ejecución par actual.jes el índice en el par actual(2*j+++i*i-i)%10da el número par correcto, dados i y j (e incrementos j), equivalente a ((j + Tr (i))% 5) * 2, donde Tr (x) es el número triangular x (que es el número de pares números que se han impreso antes de la ejecución actual;fuente
Java 8, 96 bytes
Imprime indefinidamente, cada número en una nueva línea.
Explicación:
Pruébalo aquí.
fuente
Lote, 85 bytes.
Emite el enésimo término de la secuencia. Funciona calculando el siguiente número triangular.
fuente
Perl 5 , 44 bytes
Pruébalo en línea!
Salida infinita
fuente
{...;redo}lugar dedo{...}while 1J ,
464240 bytes-6 bytes gracias a cole
Emite los primeros N términos de esta secuencia.
Cómo funciona:
10|[:+:i.- genera una lista de longitud N de 0 2 4 6 8 0 2 4 ... Simplemente toma el mod 10 de los elementos duplicados de una lista de enteros que comienzan en 0.[:;[:#:&.>2^i.- genera una máscara de bits para cortar la lista anterior.(1 significa inicio): 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 ... Encuentra 2 a la potencia de los enteros consecutivos no negativos, los convierte en binarios, aplana el lista y toma solo los primeros N elementos, de modo que la longitud de ambas listas sea la misma.
;@(1,&.><;.1)- divide (corta) la lista de los dígitos pares en sublistas según el mapa de unos y ceros, agrega la sublista a 1 y finalmente aplana la lista resultante]{.- toma solo los primeros N elementos, eliminando los números adicionales en la lista debido a los 1s agregados.Pruébalo en línea!
fuente
{.({.[:;[:#:&.>2^i.);@(1,&.><;.1)(10|2*i.). Los cambios que hice fueron usar ganchos y refactorizar el diente derecho de la horquilla para aprovechar el funcionamiento de las horquillas. Me gusta el2^i.truco Estoy tratando de trabajar en el diente izquierdo del tenedor ahora.(10|2*i.)->10|2*i.Lisp común, 74 bytes
Pruébalo en línea!
Imprime la secuencia indefinidamente.
fuente
Perl 5, 35 bytes
pruébalo en línea
fuente
Jalea , 17 bytes
Pruébalo en línea!
fuente
Protón , 55 bytes
Pruébalo en línea!
Imprime la secuencia indefinidamente
fuente
i=0 j=-2while1{...-2whilees como Python ywhile1es porque hice identificadores que no pueden ser una palabra clave seguida de un númeroJava (OpenJDK 8) , 107 bytes
Pruébalo en línea!
fuente
Mathematica, 68 bytes
Devuelve el enésimo término
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) , 61 bytes
Pruébalo en línea!
fuente
JavaScript, 45 bytes
1 indexado:
0 indexado:
Mostrar fragmento de código
fuente
Ruby ,
4846 bytesPruébalo en línea!
Imprime la secuencia indefinidamente
fuente
bash, 42 bytes
o 34 si es válido
pruébalo en línea
fuente