Mida de la Seqüència de Collatz X39171


Statement
 

pdf   zip

thehtml

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.

Entrada

La funció té un nombre natural estrictament positiu com a paràmetre.

Observacions

Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.

Sample session
>>> 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
>>> 
Information
Author
Jordi Delgado, José Luis Balcázar.
Language
Catalan
Official solutions
Python
User solutions
Python