Hoje veremos uma sequência a , relacionada à função Collatz f :
Chamamos uma sequência da forma z, f (z), f (f (z)),… uma sequência Collatz .
O primeiro número da nossa sequência, a (1) , é 0 . Sob aplicação repetida de f , ele entra em um ciclo 0 → 0 →…
O menor número que ainda não vimos é 1, produzindo um (2) = 1 . Sob aplicação repetida de f , ele entra em um ciclo 1 → 4 → 2 → 1 →…
Agora vimos o número 2 no ciclo acima, então o próximo número menor é um (3) = 3 , caindo no ciclo 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
Em todos os ciclos acima, vimos 4 e 5 , então o próximo número é (4) = 6 .
Até agora você deve ter uma ideia. a (n) é o menor número que não fazia parte de nenhuma sequência de Collatz para todos os a (1),…, a (n - 1) .
Escreva um programa ou função que, dado um número inteiro positivo n , retorne a (n) . O menor código em bytes vence.
Casos de teste:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Essa é a sequência OEIS A061641 .)
n
ser baseada em 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
não é baseado em 0 Eu não entendo por que você parece estar "falando 0 com base em" aqui:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).