Karatsuba : trois produits au lieu de quatre
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 15 — Diviser pour régner
Énoncé
Pour multiplier deux nombres de chiffres, on les coupe en deux moitiés : et . La méthode scolaire calcule quatre produits. Karatsuba en calcule trois. Écrire lesquels, et chiffrer le gain.
Corrigé
Le produit complet vaut . La méthode scolaire calcule les quatre produits , , , , d'où , soit par l'exercice précédent : on retrouve la multiplication apprise à l'école.
L'astuce est que le terme central s'obtient par soustraction :
Les deux produits et étant déjà nécessaires, un troisième produit suffit. D'où , et
Le gain, compté exactement — nombre de multiplications de chiffres, en déroulant les deux récurrences et :
| chiffres | méthode scolaire | Karatsuba | rapport |
|---|---|---|---|
| 16 | 256 | 81 | |
| 64 | 729 | ||
| 256 | |||
| 31,6 |
Le rapport vaut : il croît, mais lentement.
Ce que cet exemple enseigne. Le troisième temps — combiner — est ici plus lourd que chez la méthode scolaire : il y a des additions et deux soustractions en plus. Le gain ne vient pas de la combinaison, il vient d'avoir supprimé un appel récursif. Dans , quand les feuilles dominent, c'est qu'il faut attaquer, pas . Passer de à change l'exposant ; améliorer n'y changerait rien.
En pratique, Karatsuba ne devient rentable qu'à partir de quelques dizaines de chiffres — en dessous, les additions supplémentaires coûtent plus que le produit économisé. Toutes les bibliothèques de grands entiers basculent donc de l'une à l'autre à un seuil, mesuré une fois pour toutes sur la machine cible.
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.