Information

Author(s) Sébastien Combéfis, Olivier Martin
Deadline No deadline
Submission limit No limitation

Sign in

Mission 1 : Question de Bilan Final

La suite de Syracuse est une suite de naturels, définie de la manière suivante. Le premier naturel de la suite est n'importe quel naturel non-nul, que nous noterons \(s_0\). On peut ensuite calculer les éléments suivants de la suite en appliquant la formule suivante :

\begin{equation*} u_{n+1}= \dfrac{u_n}{2} \mbox{ si } u_n \mbox{ est pair,} \end{equation*}
\begin{equation*} u_{n+1}= 3u_n + 1 \mbox{ si } u_n \mbox{ est impair.} \end{equation*}

Par exemple, en partant de 11, on obtient : 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 4 2…

Remarquez qu'une fois que le nombre 1 est atteint, la suite 1 4 2 1 4 2… se répète indéfiniment. La conjecture de Collatz est l'hypothèse mathématique selon laquelle toutes les suites de Syracuse atteignent toujours 1, peu importe le naturel \(s_0\) choisi. Il s'agit actuellement d’un conjecture, c’est-à-dire qu’aucune preuve mathématique n’a pu être élaborée. Tous les tests effectués actuellement n'ont néanmoins pas permis de trouver un \(s_0\) tel que la suite de Syracuse en découlant n'atteigne pas 1.

Afin d'aider les mathématiciens à éventuellement trouver un contre-exemple, écrivez un programme Java qui permet de calculer la suite de Syracuse pour n’importe quel naturel non-nul \(s_0\). Le programme s'arrête bien entendu lorsque le naturel 1 est atteint.

Vous devez afficher chaque élément de la suite sur la sortie standard, avec System.out.println(). La valeur de départ vous est déjà fournie et se trouve dans une variable de type int nommée s0.


Écrivez ici directement le code à placer dans la méthode main. Vous ne devez pas déclarer, ni initialiser la variable s0