Le contenu de cette page peut être travaillé en seconde lecture.
Cette page présente un travail complet qui peut être donné en travail en classe ou à la maison.
Suite de Syracuse
Le contenu de cette page peut être travaillé en seconde lecture.
Cette page présente un travail complet qui peut être donné en travail en classe ou à la maison.
On considère le programme de calcul suivant :
40 est pair, on le divise donc par 2. On obtient le nombre 20.
En poursuivant ce raisonnement, on obtient la liste :
40 − 20 − 10 − 5 − 16 − 8 − 4 − 2 − 1 − 4 − 2 − 1 − 4 − 2 − 1
23 est impair, on le multiplie par 3 et on ajoute 1. On obtient 70.
En poursuivant ce raisonnement, on obtient la liste :
23 − 70 − 35 − 106 − 53 − 160 − 80 − 40 − 20 − 10 − 5 − 16 − 8 − 4 − 2 − 1 − 4 − 2 − 1 − 4
Il semble qu'à partir d'un moment, la liste de nombre se mette à « boucler » sur les trois nombres 4 − 2 − 1.
suivant()
de paramètre
l'entier strictement positif n
, et qui renvoie le nombre
suivant obtenu grâce au programme de calcul.syracuse()
de paramètres
n
et nb
. L'entier n
est
la valeur de départ et l'entier nb
est le nombre de termes
de la liste renvoyée d'après le programme de calcul.syracuse(20, 10)
et
syracuse(34, 13)
.On appelle «temps de vol » de l'entier $n$ le nombre de valeurs calculées dans cette suite de nombres jusqu'à obtenir 1.
vol()
de paramètre l'entier $n$
qui est la valeur choisie au départ. Cette fonction renvoie le vol
sous forme de liste de n
à 1.En partant de 4, il suffit de calculer deux nombres pour arriver à 1. La suite est « 4 − 2 − 1» donc le «temps de vol » de 4 est 2.
La suite est : 10 − 5 − 16 − 8 − 4 − 2 − 1. Ainsi, le « temps de vol » de 10 est 6.
On a : 35 − 106 − 53 − 160 − 80 − 40 − 20 − 10 − 5 − 16 − 8 − 4 − 2 − 1. Ainsi, le « temps de vol » de 35 est 13.
On appelle « altitude maximale » de l'entier $n$ la valeur maximale atteinte lors du « vol » de l'entier $n$.
alt_maxi()
qui renvoie l'altitude
maximale atteinte à partir de la valeur n
saisie en paramètre.
En partant de 15, on obtient la liste :
15 − 46 − 23 − 70 − 35 − 106 − 53 − 160 − 80 − 40 − 20 − 10 − 5 − 16 − 8 − 4 − 2 − 1
Donc l'altitude maximale est 160 si on choisit 15 au départ.
Dans la fonction plus_gd_vol()
, N
représente le nombre
à ne pas dépasser (1000 pour répondre à l'exercice).
tps_vol_maxi
vaut 1 et qu'il est obtenu pour une valeur initiale
depart_du_maxi
de 1.
N
-1 et on détermine la
liste de son vol ainsi que son « temps de vol » (la taille du vol moins 1).
tps_vol_maxi
,
il devient le nouveau tps_vol_maxi
. On actualise aussi la nouvelle
valeur initiale depart_du_maxi
de ce temps de vol maximal.