Heute schauen wir uns eine Sequenz a an , die mit der Collatz-Funktion f zusammenhängt :
Wir nennen eine Folge der Form z, f (z), f (f (z)), ... eine Collatz-Folge .
Die erste Zahl in unserer Sequenz, a (1) , ist 0 . Bei wiederholter Anwendung von f fällt es in einen Zyklus 0 → 0 →…
Die kleinste Zahl, die wir noch nicht gesehen haben, ist 1, was a (2) = 1 ergibt . Bei wiederholter Anwendung von f fällt es in einen Zyklus 1 → 4 → 2 → 1 →…
Jetzt haben wir die Zahl 2 im obigen Zyklus gesehen, also ist die nächstkleinere Zahl a (3) = 3 und fällt in den Zyklus 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
In allen obigen Zyklen haben wir bereits 4 und 5 gesehen , die nächste Zahl ist also a (4) = 6 .
Inzwischen sollten Sie auf die Idee kommen. a (n) ist die kleinste Zahl, die nicht Teil einer Collatz-Sequenz für alle a (1),…, a (n - 1) war .
Schreiben Sie ein Programm oder eine Funktion, die bei einer positiven Ganzzahl n a (n) zurückgibt . Kürzester Code in Bytes gewinnt.
Testfälle:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Dies ist die OEIS-Sequenz A061641 .)
n
0-basiert sein?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
nicht 0-basiert Ich verstehe nicht, warum Sie hier zu "sprechen 0-basiert" scheinen:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).