Adloun

informatique (MP2I/MPI) · Chapitre 15 · Exercice de TD

Karatsuba : trois produits au lieu de quatre

Diviser pour régner · niveau 2

É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 :

chiffresméthode scolaireKaratsubarapport
1625681
64729
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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre