Het vermoeden van Collatz is één van de beroemdste onopgeloste problemen uit de wiskunde. Het gaat als volgt:
Het vermoeden is dat de reeks die je bekomt voor àlle startwaarden uiteindelijk naar 1 gaat. Dit is echter nog niet bewezen.
Schrijf 2 functies:
collatz(n)
lengte_collatz(n)
De functie collatz(n)
neemt een geheel getal als parameter en returnt de volgende waarde op basis van de bovenstaande regels. Voor deze functie zul je een if-statement nodig hebben.
De functie lengte_collatz(n)
neemt een geheel getal als parameter en returnt hoeveel stappen er nodig zijn om 1 te bereiken. Deze functie kun je met een while-lus programmeren.
Stel dat we 8 als startwaarde nemen. De reeks die we genereren is:
\[8 \rightarrow 4 \rightarrow 2 \rightarrow 1\]Na 3 stappen zijn we dus bij 1. Beginnen we in de plaats bij het getal 3, dan wordt het:
\[3 \rightarrow 10 \rightarrow 5 \rightarrow 16 \rightarrow 8 \rightarrow 4 \rightarrow 2 \rightarrow 1\]Hier waren 7 stappen voor nodig.
Onze functies moeten dus als volgt werken:
print(collatz(8))
print(lengte_collatz(8))
4
3
print(collatz(3))
print(lengte_collatz(3))
10
7