Adloun

Voici une boucle : while n != 1: n = n // 2 if n % 2 == 0 else 3 n + 1…

Exercice supplémentaire · niveau 3 (difficile) · NSI (première), chapitre 7 — Parcourir, trier, prouver · Terminaison, échanges, partitions

Énoncé

Voici une boucle : while n != 1: n = n // 2 if n % 2 == 0 else 3<em>n + 1. Trouver un variant. Indication :* personne n'y est parvenu à ce jour — c'est la conjecture de Syracuse. Que peut-on en conclure sur la difficulté de prouver une terminaison ?

Corrigé

Pourquoi n lui-même ne convient pas. Il ne décroît pas : sur un impair, il est multiplié par et augmenté de . Partant de , la suite monte à avant de redescendre. Partant de , elle culmine à — plus de trois cents fois la valeur de départ — et met tours à retomber sur .

de départtoursplus haut sommet atteint

Aucune régularité : met plus de tours que tout en atteignant le même sommet. Sur tous les de à , le record de longueur est détenu par , avec tours. La boucle s'arrête sur tous les jusqu'à — vérifié — mais cela ne prouve rien.

Ce qu'il faudrait, et qu'on n'a pas. Un variant est une quantité entière, positive, qui décroît strictement à chaque tour. Ici, aucune quantité de ce genre n'est connue. Ce n'est pas faute d'avoir cherché : la conjecture est ouverte depuis les années , et Paul Erdős disait à son sujet que « les mathématiques ne sont pas prêtes pour de tels problèmes ».

Trois conclusions, et la troisième est la plus importante.

Ce qu'il faut en retenir pour l'examen. Que le variant est un outil puissant quand il existe — et il existe pour toutes les boucles du programme, dichotomie comprise. Qu'on ne sache pas toujours en trouver un ne retire rien à ceux qu'on trouve.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.