Aujourd'hui, nous allons regarder une séquence a , liée à la fonction Collatz f :
Nous appelons une séquence de la forme z, f (z), f (f (z)),… une séquence de Collatz .
Le premier nombre de notre séquence, a (1) , est 0 . Sous l'application répétée de f , il tombe dans un cycle 0 → 0 →…
Le plus petit nombre que nous n'avons pas encore vu est 1, ce qui fait un (2) = 1 . Sous l'application répétée de f , il tombe dans un cycle 1 → 4 → 2 → 1 →…
Maintenant, nous avons vu le nombre 2 dans le cycle ci-dessus, donc le plus petit nombre suivant est a (3) = 3 , tombant dans le cycle 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
Dans tous les cycles ci-dessus, nous avons déjà vu 4 et 5 , donc le nombre suivant est a (4) = 6 .
Vous devriez maintenant avoir l'idée. a (n) est le plus petit nombre qui ne faisait partie d'aucune séquence de Collatz pour tous a (1),…, a (n - 1) .
Écrivez un programme ou une fonction qui, étant donné un entier positif n , renvoie a (n) . Le code le plus court en octets gagne.
Testcases:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Il s'agit de la séquence OEIS A061641 .)
n
peut-elle être basée sur 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
n'est pas basé sur 0, je ne comprends pas pourquoi vous semblez "parler sur la base de 0" ici:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).