Dzisiaj przyjrzymy się sekwencji a związanej z funkcją Collatz f :
Nazywamy sekwencję formie oo, F (z), F (F (z)) ... w sekwencji Collatz .
Pierwsza liczba w naszej sekwencji, a (1) , to 0 . Przy wielokrotnym stosowaniu f wpada w cykl 0 → 0 →…
Najmniejsza liczba, której jeszcze nie widzieliśmy, to 1, co daje (2) = 1 . Przy wielokrotnym stosowaniu f , przechodzi on w cykl 1 → 4 → 2 → 1 →…
Teraz widzieliśmy liczbę 2 w powyższym cyklu, więc następną najmniejszą liczbą jest a (3) = 3 , mieszcząca się w cyklu 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
We wszystkich powyższych cyklach widzieliśmy już 4 i 5 , więc następna liczba to (4) = 6 .
Do tej pory powinieneś mieć pomysł. a (n) jest najmniejszą liczbą, która nie była częścią żadnej sekwencji Collatz dla wszystkich a (1),…, a (n - 1) .
Napisz program lub funkcję, która przy dodatniej liczbie całkowitej n zwraca a (n) . Najkrótszy kod w bajtach wygrywa.
Przypadki testowe:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Jest to sekwencja OEIS A061641 .)
n
być oparte na 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
nie jest oparty na 0, nie rozumiem, dlaczego wydaje się, że „rozmawiasz na podstawie 0” tutaj:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).