Cursus Raku / Addendum 🆕 / Werken met gegevens / Getallen en wiskunde / Exercises / Collatz-stappen
Oplossing: Collatz-stappen
Hier is een mogelijke oplossing voor de taak.
Code
my $n = 27;
my $steps = 0;
while $n != 1 {
$n = $n %% 2 ?? $n div 2 !! 3 * $n + 1;
$steps++;
}
say $steps;🦋 Je kunt de broncode vinden in het bestand collatz.raku.
Uitvoer
111Opmerkingen
De ternaire
?? !!kiest de volgende waarde in één uitdrukking: halveer$nwanneer het even is ($n %% 2), pas anders3 * $n + 1toe.27is een befaamd klein geval dat een verrassend lange omweg maakt —111stappen — voordat het uiteindelijk op1uitkomt.