MathLvl
Question transversaleMathsNSIAlgorithmes et complexité

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. 1. Introduction

    1 min

    L'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. 2. Mathématiques : terminaison et pire cas

    4 min

    Exemple : 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. 3. NSI : programme et coût

    3 min

    En 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. 4. Conclusion

    1,5 min

    L'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.

1071=2×462+147 462=3×147+21 147=7×21 ⇒ PGCD =21
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é

Toutes les questions maths-nsi →

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 →