Seconde – Algorithmique
Algorithmique (4) : la conjecture de Syracuse
I. Préliminaire 1
On considère l'algorithme suivant traduit dans ALGOBOX :
La fonction floor(x) calcule la partie entière du nombre x.
1°) Que fait cet algorithme ?
2°) Reproduisez cet algorithme dans ALGOBOX, et testez-le avec différentes valeurs.
3°) Remplacez alors les " haaaa ! " et " hoooo ! " par des messages appropriés.
II. Préliminaire 2
On considère les instructions suivantes :
« On choisit un nombre entier plus grand que zéro ;
s’il est pair, on le divise par 2 ;
s’il est impair, on le multiplie par 3 et on ajoute 1. »
1°) Quel résultat donne cette suite d'instruction en partant du nombre 5 ? de 6 ? de 7 ?
2°) Ouvrir un nouveau fichier dans ALGOBOX et écrire un algorithme qui réalise ces instructions puis
qui affiche le résultat obtenu.
3°) Tester votre algorithme avec les valeurs 5 ; 6 et 7.
III. La conjecture de Syracuse
1°) Appliquer l'algorithme précédent au nombre 1, appliquer de nouveau l'algorithme au résultat obtenu et
répéter ce procédé plusieurs fois. Que remarquez-vous ?
2°) Reproduire la démarche de la question 1°) en partant du nombre 5.
Seconde – Algorithmique
3°) On considère alors la conjecture suivante :
"Si l'on applique l'algorithme précédent à n'importe quel nombre entier naturel, que l'on recommence
avec le résultat obtenu et que l'on répète ensuite cette démarche, on finit toujours par obtenir 1. "
Tester cette conjecture en partant de différents nombres entiers. Avez-vous trouvé des contre-exemples ?
IV. La structure répétitive "tant que "
Il existe en algorithmique une structure qui permet d'effectuer une série d'instruction tant qu'une condition
n'est pas réalisée. Elle se présente de la manière suivante :
Tant que condition
instructions
Fin Tant que
Nous allons l'utiliser ici pour répéter l'algorithme précédent tant que le résultat n'est pas égal à 1.
1°) A l'aide du bouton " Ouvrir " de la barre d'outil ouvrer le fichier Syracuse.alg qui se trouve dans le
dossier " Echange " du poste de travail.
L'algorithme présentée réitère le procédé de la partie II. tant que le résultat n'est pas égal à 1 ; il affiche
tout les résultats intermédiaires obtenus.
Tester cet algorithme avec 5 ; 6 et 7 puis avec vos éventuels contre-exemples.
2°) Introduction d'un compteur
Compléter l'algorithme précédent en introduisant une nouvelle variable i qui servira de compteur.
Modifier l'algorithme de manière à ce qu'il affiche le nombre de résultats intermédiaires obtenus avant
d'arriver à 1.
Tester cet algorithme.
3°) Que ferait cet algorithme avec un contre exemple à la conjecture ?
V. Conclusion
Cette conjecture fut émise la première fois au début des années 30 par un mathématicien de l'université de
Hambourg, Lothar Collatz. Elle est appelée conjecture de Syracuse ou encore conjecture de Collatz.
En dépit de sa simplicité, cette conjecture continue de défier les mathématiciens.
Le mathématicien hongrois Paul Erdõs (1913 - 1996) a dit à propos de cette conjecture :
" les mathématiques ne sont pas encore prête pour de tels problèmes".