Pourquoi l'algorithme d'Euclide, vieux de 2 300 ans, est-il toujours aussi rapide ?
Le PGCD de 1 071 et 462 s'obtient en 3 divisions. Le pire cas est celui de deux termes consécutifs de Fibonacci : 89 et 55 demandent 9 divisions. Le nombre d'étapes ne dépasse pas environ 5 fois le nombre de chiffres du plus petit nombre (théorème de Lamé).
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
J'ai appris l'algorithme d'Euclide au collège sans me demander s'il était efficace. En NSI, en le programmant, j'ai constaté qu'il trouvait instantanément le PGCD de nombres de cent chiffres. Je me suis demandé combien d'étapes il pouvait demander au pire, et j'ai été surpris de retrouver la suite de Fibonacci dans la réponse.
L'enjeu et les notions du programme
Majorer le nombre d'étapes d'un algorithme à l'aide d'une suite et du logarithme.
Mathématiques
- Division euclidienne, PGCD (seconde)
- Suites définies par récurrence, suite de Fibonacci (première)
- Logarithme, croissance géométrique (terminale)
Numérique et sciences informatiques
- Algorithmes et terminaison, variant de boucle (première)
- Coût d'un algorithme (première)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minL'algorithme d'Euclide calcule le PGCD de deux entiers en remplaçant (a,b) par (b,r), où r est le reste de la division de a par b, jusqu'à obtenir un reste nul. Problématique : combien d'étapes faut-il au maximum ?
2. Mathématiques : terminaison et pire cas
4 minExemple : 1071=2×462+147, 462=3×147+21, 147=7×21+0. Le PGCD est 21, en 3 divisions.
Terminaison : les restes sont des entiers positifs strictement décroissants (0≤ r<b) : la suite ne peut pas descendre indéfiniment.
Pire cas : on cherche les plus petits nombres qui demandent k étapes. Si chaque quotient vaut 1, on remonte a=b+r : c'est la relation Fₙ₊₁=Fₙ+Fₙ₋₁ de Fibonacci. Avec 89 et 55 : 89=55+34, 55=34+21, …, jusqu'à 2=2×1+0 : 9 divisions, le maximum pour des nombres de cette taille.
La suite de Fibonacci croît comme φⁿ avec φ=(1+sqrt5)/2≈1,618. Le nombre d'étapes est donc au plus de l'ordre de log_φ b=(ln b)/lnφ. Comme log_φ10≈4,8, on obtient le théorème de Lamé : au plus environ 5 fois le nombre de chiffres de b.
3. NSI : programme et coût
3 minEn Python : tant que b≠0, on remplace a,b par b,a % b. Le variant de boucle est b, entier positif qui décroît strictement : il prouve la terminaison.
Pour deux nombres de 100 chiffres, au plus environ 480 divisions : instantané. C'est pour cela qu'il est utilisé en cryptographie, par exemple pour calculer la clé privée de RSA avec sa version étendue. On le compare à la méthode « décomposer en facteurs premiers puis prendre les facteurs communs », qui exige de factoriser : impossible pour de grands nombres.
4. Conclusion
1,5 minL'algorithme d'Euclide est rapide parce que les restes décroissent au moins aussi vite que la suite de Fibonacci à l'envers : le nombre d'étapes est logarithmique. Un algorithme antique reste un outil moderne. J'ouvre sur l'algorithme d'Euclide étendu, qui donne les coefficients de Bézout.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
Fₙ₊₁=Fₙ+Fₙ₋₁ (89,55): 9 étapes étapes lesssim(ln b)/lnφ≈4,8×( nombre de chiffres )
Conclusion : la réponse à la question
Le nombre d'étapes de l'algorithme d'Euclide est logarithmique : son pire cas, lié à Fibonacci, reste très faible. C'est l'un des plus anciens algorithmes, et l'un des plus efficaces.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Calculez le PGCD de 84 et 36.
84=2×36+12, 36=3×12 : PGCD = 12.
Pourquoi l'algorithme se termine-t-il ?
Les restes forment une suite d'entiers naturels strictement décroissante, qui ne peut pas être infinie.
Pourquoi le PGCD de a et b est-il celui de b et r ?
Tout diviseur commun de a et b divise r=a-qb, et inversement tout diviseur commun de b et r divise a=qb+r.
Que vaut φ ?
φ=(1+sqrt5)/2≈1,618, solution positive de x²=x+1.
Pourquoi les nombres de Fibonacci sont-ils le pire cas ?
Ils correspondent à des quotients tous égaux à 1, ce qui fait diminuer les nombres le plus lentement possible.
Les pièges qui coûtent des points
- Confondre nombre d'étapes et valeur du PGCD.
- Oublier de justifier la terminaison.
- Croire que le pire cas est celui de deux grands nombres premiers.
Revoir les notions
Autres questions : algorithmes et complexité
- Pourquoi trier un million de nombres peut-il prendre dix minutes ou un centième de seconde selon l'algorithme ?
- Pourquoi couper un problème en deux permet-il de le résoudre beaucoup plus vite ?
- Peut-on inventer un algorithme de tri encore plus rapide, ou existe-t-il une limite infranchissable ?
- Un ordinateur mille fois plus rapide permet-il de résoudre des problèmes mille fois plus grands ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →