Kurso de Raku / Aldono 🆕 / Labori kun datumoj / Nombroj kaj matematiko / Exercises / Paŝoj de Collatz

Solvo: Paŝoj de Collatz

Jen ebla solvo de la tasko.

Kodo

my $n = 27;
my $steps = 0;

while $n != 1 {
    $n = $n %% 2 ?? $n div 2 !! 3 * $n + 1;
    $steps++;
}

say $steps;

🦋 Vi povas trovi la fontkodon en la dosiero collatz.raku.

Eligo

111

Komentoj

  1. La ternara ?? !! elektas la sekvan valoron per unu esprimo: duonigu $n, kiam ĝi estas para ($n %% 2), alie apliku 3 * $n + 1.

  2. 27 estas fama malgranda kazo, kiu faras surprize longan ĉirkaŭvojon — 111 paŝojn — antaŭ ol ĝi fine trankviliĝas ĉe 1.

Kursa navigado

Paŝoj de Collatz   |   Unu nombro, tri bazoj