Définir une fonction python $f(n)$ qui à tout entier $n$ associe $\dfrac{n}{2}$ si $n$ est pair et associe $3*n+1$ si $n$ est impair
Par exemple $f(8) = 4$ et $f(5) = 16$
(Pour tester si un entier $n$ est pair on fera les test suivant
if n % 2 == 0:
..............
else:
..............
)
On traduit "un nombre n est pair" par son reste par la division euclidienne par 2 est 0.( n % a donne le reste de la division euclidienne par a
L'algorithme de Syracuse consiste à répéter la fonction $f$ à partir d'un nombre entier $n$ jusqu'à obtenir le nombre 1
Par exemple en partant de 6 on obtient successivement 3, 10, 5, 16, 8, 4, 2, 1Obtientdra-t-on toujours 1? A l'heure actuelle on ne sait pas encore
On conjecture que cette propriété est vraie (Conjecture de Syracuse). Cette conjecture n'est pas encore prouvée. Voir ici
Ecrire à la main les images successives à partir de 7
On définit la suite de Syracuse de N comme étant la suite de nombres engendrée par l'algorithme de Syracuse commençant par N et se terminant par 1
Par exemple pour N = 5, la suite est 5, 16, 8, 4, 2, 1
Par exemple pour N = 6, la suite est 6, 3, 10, 5, 16, 8, 4, 2, 1
On définit le temps de vol de la suite comme étant égal au nombre de répétitions de la boucle
Dans l'exemple ci-dessus le temps de vol est 8 pour N = 6 et 5 pour N = 5
On définit l'altitude maximale comme étant la valeur la plus grande prise par N
Pour N=5 et pour N = 6 l'altitude maximale est 16
On définit le temps de vol en altitude comme étant égal au plus petit nombre de répétitions au bout duquel la valeur de N devient inférieur ou égale à la valeur initiale de N
Par exemple pour N = 5 le temps de vol en altitude est de 3 et pour N = 6 il vaut 1
Introduire trois variables temps_vol, temps_vol_altitude et altitude_max et compléter la fonction ci-dessus pour que soit affiché à la fin de la boucle le temps de vol , le temps de vol en altitude et l'altitude maximale