Peut-on multiplier deux grands nombres plus vite qu'avec la méthode apprise à l'école ?
La multiplication posée de deux nombres de n chiffres coûte n² produits de chiffres. Karatsuba remplace 4 multiplications de moitiés par 3, d'où un coût en n^(log₂ 3) ≈ n^1,585 : pour 1 024 chiffres, 59 049 produits au lieu de 1 048 576.
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 longtemps pensé que la multiplication posée était la seule façon de multiplier. Le mathématicien Kolmogorov le pensait aussi, jusqu'à ce qu'un étudiant de 23 ans, Karatsuba, trouve mieux en 1960. J'ai voulu comprendre son astuce, qui tient en une identité remarquable, et mesurer ce qu'elle fait gagner.
L'enjeu et les notions du programme
Utiliser le calcul littéral pour économiser une multiplication, puis résoudre une récurrence par les puissances et le logarithme.
Mathématiques
- Développement, identités, calcul littéral (seconde)
- Suites géométriques, récurrence (première)
- Logarithme et puissances réelles (terminale)
Numérique et sciences informatiques
- Méthode « diviser pour régner » (terminale)
- Récursivité, coût d'un algorithme (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minMultiplier deux nombres de n chiffres à la main demande de multiplier chaque chiffre de l'un par chaque chiffre de l'autre : n² produits. En cryptographie, on multiplie des nombres de milliers de chiffres. Problématique : peut-on faire moins de n² produits ?
2. Mathématiques : l'astuce de Karatsuba
4 minOn coupe chaque nombre en deux moitiés : x=a×10^(k)+b, y=c×10^(k)+d. Alors xy=ac×10^(2k)+(ad+bc)×10^(k)+bd : quatre multiplications de moitiés.
L'astuce : (a+b)(c+d)=ac+ad+bc+bd, donc ad+bc=(a+b)(c+d)-ac-bd. Avec les trois produits ac, bd et (a+b)(c+d), on obtient tout : 3 multiplications au lieu de 4, plus quelques additions, peu coûteuses.
Exemple : x=12, y=34 : ac=1×3=3, bd=2×4=8, (1+2)(3+4)=21, d'où ad+bc=21-3-8=10 et xy=300+100+8=408.
Coût : M(n)=3M (n/2), avec M(1)=1. Pour n=2^(k), M(n)=3^(k)=3^(log₂n)=n^(log₂3)≈ n^(1,585). Pour 1 024 chiffres : 3¹⁰=59 049 produits de chiffres contre 1024²=1 048 576, près de 18 fois moins.
3. NSI : en pratique
3 minLa version récursive s'arrête sur de petits nombres, que l'on multiplie directement, car les additions supplémentaires ne valent la peine qu'au-delà d'une certaine taille (quelques dizaines de chiffres). Python utilise d'ailleurs Karatsuba pour ses grands entiers.
On a trouvé depuis des méthodes encore plus rapides, fondées sur la transformée de Fourier, jusqu'à un algorithme en nlog n publié en 2019. L'histoire montre qu'une méthode millénaire peut être battue par une idée de calcul littéral.
4. Conclusion
1,5 minOn peut multiplier plus vite qu'à l'école : en économisant une multiplication sur quatre grâce à une identité, Karatsuba passe de n² à n^(log₂3). Le gain grandit avec la taille des nombres. J'ouvre sur l'exponentiation rapide, qui combine ces multiplications pour calculer de grandes puissances.
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.
M(n)=3M (n/2)⇒ M(2^(k))=3^(k)=n^(log₂3)≈ n^(1,585) 3¹⁰=59 049 contre 1 048 576
Conclusion : la réponse à la question
Une identité de calcul littéral suffit à battre la multiplication posée : trois produits au lieu de quatre, appliqués récursivement, donnent un coût en n^(1,585). En algorithmique, une petite économie répétée devient un grand gain.
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.
Vérifiez l'identité (a + b)(c + d) = ac + ad + bc + bd.
Double distributivité : chaque terme de la première parenthèse multiplie chaque terme de la seconde.
Pourquoi 3^(log₂ n) = n^(log₂ 3) ?
Les deux valent e^(ln3 ln n/ln2).
Pourquoi les additions ne comptent-elles presque pas ?
Additionner deux nombres de n chiffres coûte de l'ordre de n opérations, beaucoup moins qu'une multiplication.
Calculez 23 × 41 avec la méthode.
ac=8, bd=3, (2+3)(4+1)=25, ad+bc=14 : 800+140+3=943.
Que vaut log₂ 3 ?
ln3/ln2≈1,585.
Pourquoi le gain grandit-il avec la taille des nombres ?
Le rapport des coûts vaut n²/n^(1,585)=n^(0,415), qui tend vers +∞ : il vaut environ 18 pour 1 024 chiffres et plus de 300 pour un million de chiffres.
Les pièges qui coûtent des points
- Oublier de soustraire ac et bd.
- Croire que Karatsuba est plus rapide pour de petits nombres.
- Confondre n^(log₂ 3) et 3n.
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 →