Het vermoeden van Collatz

Neem eender welk natuurlijk getal. Als het getal even is, deel het dan door twee; als het oneven is, vermenigvuldig het dan met drie en tel er één bij op. Formeel gesteld: begin bij een getal \(a_1\) en definieer

$$ a_{n+1} = \begin{cases} a_n/2 & \text{als het getal even is,}\\ 3a_n + 1 & \text{als het getal oneven is.} \end{cases} $$

Het vermoeden van Collatz stelt dat het niet uitmaakt wat de beginwaarde \(a_1\) precies is; je zal altijd uitkomen bij \(a_n = 1\) voor een voldoende grote \(n\). Start bijvoorbeeld bij \(a_1 = 12\), dan krijgen we de Collatz-rij

12, 6, 3, 10, 5, 16, 8, 4, 2, 1.

Starten we bij 15, dan krijgen we

15, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1

Merk op dat je in een lus belandt zodra je uitkomt bij 1:

1, 4, 2, 1, 4, 2, 1, ...

Vandaar dat we altijd stoppen als we uitkomen bij 1. Het vermoeden van Collatz is tot op heden een openstaand wiskundig probleem dat nog niemand heeft kunnen bewijzen, maar waar ook nog geen tegenvoorbeelden voor gevonden zijn.

Opgave

Schrijf een programma dat een getal neemt als invoer en de corresponderende Collatz-rij voor dat getal produceert als uitvoer.

Voorbeeld

Invoer:

12

Uitvoer:

[12, 6, 3, 10, 5, 16, 8, 4, 2, 1]

Indienen

Evaluatie


Uitvoerconsole