Sigui n qualsevol natural estrictament
positiu. Considereu el procés següent: Si n és parell, dividiu-lo per
dos. Altrament, multipliqueu-lo per 3 i sumeu-li 1. Quan arribeu a 1,
pareu.
Per exemple, començant en n=3, s’obté
la seqüència de Collatz S(3): 3,10,5,16,8,4,2,1. La mida d’aquesta
seqüència és 7, ja que han calgut 7 iteracions del procés descrit més
amunt per arribar fins a 1.
Des de l’any 1937 es conjectura que aquest procés acaba per a
qualsevol n inicial, encara que no ho ha
sabut demostrar ningú. En aquest problema suposarem que la conjectura és
certa.
Escriu una funció mida_collatz(n) que,
donat un natural n > 0, retorni la mida
de la seqüència de Collatz corresponent a
n, és a dir, quantes iteracions del procés
descrit més amunt calen per arribar a 1.
La funció té un nombre natural estrictament positiu com a paràmetre.
Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.
>>> mida_collatz(12) 9 >>> mida_collatz(3) 7 >>> mida_collatz(19) 20 >>> mida_collatz(27) 111 >>> mida_collatz(97) 118 >>> mida_collatz(871) 178 >>> mida_collatz(1) 0 >>> mida_collatz(2) 1 >>>