Hoy veremos una secuencia a , relacionada con la función Collatz f :
Llamamos a una secuencia de la forma z, f (z), f (f (z)), ... una secuencia de Collatz .
El primer número en nuestra secuencia, a (1) , es 0 . Bajo la aplicación repetida de f , cae en un ciclo 0 → 0 →…
El número más pequeño que aún no hemos visto es 1, haciendo un (2) = 1 . Bajo la aplicación repetida de f , cae en un ciclo 1 → 4 → 2 → 1 →…
Ahora hemos visto el número 2 en el ciclo anterior, por lo que el siguiente número más pequeño es un (3) = 3 , que cae en el ciclo 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
En todos los ciclos anteriores ya hemos visto 4 y 5 , por lo que el siguiente número es a (4) = 6 .
A estas alturas ya deberías tener la idea. a (n) es el número más pequeño que no fue parte de ninguna secuencia de Collatz para todos a (1), ..., a (n - 1) .
Escriba un programa o función que, dado un entero positivo n , devuelva a (n) . El código más corto en bytes gana.
Casos de prueba:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Esta es la secuencia OEIS A061641 .)
n
estar basada en 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
no está basado en 0, no entiendo por qué parece que estás "hablando en base a 0" aquí:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).