TP 2

In [ ]:
#use "/opt/camllight.ml"

Suite de Syracuse

Soit $f$ la fonction définie sur $\mathbf{N}$ par

$$f(a) = \begin{cases} \frac{a}{2}\quad\text{si } a \text{ est pair} \\ 3a + 1\quad\text{si } a \text{ est impair.} \end{cases}$$

Soit $a\in\mathbf{N}^*$. On définit la suite $(u_n)_{n\in\mathbf{N}}$ par $u_0=a$ et $u_n=f(u_{n-1})$ pour $n\gt 0$.

Question 1

Écrire une fonction Caml qui permet de calculer $f$.

In [ ]:

Question 2

Écrire une fonction Caml qui permet de calculer $u_n$. Cette fonction aura deux arguments, l'un d'eux étant le terme initial de la suite.

In [ ]:

Question 3

Calculer le millionième terme de la suite pour plusieurs valeurs de $u_0$. Proposer une conjecture. Si vous pouvez la démontrer, en proposer une autre. Recommencer jusqu'à ce que vous ne réussissiez plus à la démontrer.

In [ ]:

Voici quelques définitions :

  • l'altitude maximale la valeur maximale de la suite,

  • la durée de vol le plus petit indice $n$ tel que $u_n=1$,

  • la durée de vol en altitude est le plus petit indice $n$ tel que $u_{n+1} < u_0$.

Question 4

Écrire une fonction qui calcule l'altitude maximale en fonction de $u_0$.

In [ ]:

Question 5

Écrire une fonction qui calcule la durée du vol en fonction de $u_0$.

In [ ]:

Question 6

a. Quelle est la plus longue durée de vol pour les valeurs de $u_0$ inférieures ou égales à 100 ?

b. Même question pour 300000 au lieu de 100 ?

In [ ]:

Question 7

Modifier la fonction max_duree_vol de sorte qu'elle retourne également la plus petite valeur $u_0$ pour laquelle cette durée de vol maximale est atteinte.

In [ ]:

Question 8

Écrire une fonction qui calcule la durée de vol en altitude en fonction de $u_0$.

In [ ]: