Suite de Syracuse
Il s'agit de la suite $(u_n)$ définie par son premier terme $u_0$ entier naturel non nul et par la relation de récurrence :
$u_{n+1}=\frac{u_n}{2} \quad\mathrm{si}\;u_n\;\mathrm{est pair} $
$u_{n+1}=3u_n+1\quad\mathrm{sinon} $
- Déterminer à la main, les premiers termes de cette suite pour chacune des valeurs suivantes de $u_0$ : 8 , 9 , 15 et 20.
- Quelle conjecture peut-on émettre ?
Programmation de la suite
- Définir une fonction Python $\texttt{syracuse(a)}$ qui retournera la liste des premiers termes de la suite de Syracuse lorsque $u_0=a$. Le chiffre 1 n'apparaîtra qu'une seule fois dans cette liste et en dernière position. Cette liste associée à l'entier positif $a$ est appelé "vol numéro a".
- On appelle "durée du vol numéro a" le plus petit entier $p$ tel que $u_p=1$ lorsque $u_0=a$. Ecrire une fonction $\texttt{duree(a)}$ admettant un entier $a>0$ comme argument et qui renvoie la durée du vol numéro $a$.
- On appelle "altitude maximale du vol numéro a" le maximum de la suite de Syracuse ayant pour premier terme $u_0=a$. Créer une fonction $\texttt{maximum(a)}$ renvoyant l'altitude maximale du vol numéro $a$.
Représentation graphique
En utilisant le module turtle,
créer une fonction $\texttt{vol(a)}$ qui, opérant sur un entier $a>0$, retournera la ligne brisée reliant les points $\left[k,u_k\right]$ où $k$ varie de 0 à $\texttt{duree(a)}$. Représenter différents vols, notamment le vol numéro 89.
On pourra utiliser les fonctions reset() et goto(x,y)