• Aucun résultat trouvé

TD : Multiplication de Karatsuba Dominique Michelucci, Universit´e de Dijon 18 septembre 2012

N/A
N/A
Protected

Academic year: 2022

Partager "TD : Multiplication de Karatsuba Dominique Michelucci, Universit´e de Dijon 18 septembre 2012"

Copied!
2
0
0

Texte intégral

(1)

TD : Multiplication de Karatsuba

Dominique Michelucci, Universit´ e de Dijon 18 septembre 2012

La m´ethode na¨ıve pour multiplier des entiers denchiffres est enO(n2). (Par contre la m´ethode na¨ıve pour additionner est lin´eaire...).

La multiplication de Karatsuba est plus rapide. Principe : pour multiplierA etB, avecAle plus grand,nchiffres dans la base utilis´ee, on ´ecritA=a0+a1Ω et B =b0+b1Ω, o`u Ω est la puissance de la base, telle que a0et a1 ont `a peu pr`esn/2 chiffres.

Calculer na¨ıvement

A×B= (a0+a1Ω)(b0+b1Ω) = (a1×b1)Ω2+ (a0×b1+a1×b0)Ω + (a0×b0) en effectuant 4 produits sur des nombres deux fois plus courts est toujours en O(n2) : en effet r´esoudre l’´equationT(n) = 4T(n/2), ou bienT(n) = 4T(n/2)+n donneT(n) =O(n2). V´erifions :

Indication de preuve. Calculons d’abord la table deT(1) = 1, T(n) = 4T(n/2) pour simplifier :

log2n n T(n)

0 1 1

1 2 4 = 22

2 4 16 = 42

3 8 64 = 82

4 16 256 = 162

Clairement T(n) = n2 =O(n2) sur ces exemples, et on le prouve trivialement par r´ecurrence. Ensuite consid´ererT(1) = 1, T(n) = 4T(n/2) +n a pour effet d’introduire des termes parasites, de plus bas degr´e, qui ne vont pas modifier le fait queT(n) =O(n2). Il vous est conseill´e de le faire, en ”travail `a la maison” ! L’id´ee de Karatsuba est de n’utiliser que 3 multiplications, au lieu de 4.

Il utilise davantage d’additions (ou soustractions), mais elles sont en temps lin´eaire.

AB= (a1×b1)Ω2+ ((a0+a1)×(b0+b1)−a1×b1−a0×b0)Ω + (a0×b0) Cette m´ethode est en O(nlog23) = O(n1.5849625007211563). C’est la solution de l’´equation de r´ecurence deT(n) = 3T(n/2) +n. V´erifions le :

Indication de preuve. Consid´erons d’abord, pour simplifier,T(1) = 1, T(n) =

1

(2)

3T(n/2). Calculons la table :

log2n n T(n)

0 1 1 = 30

1 2 3 = 31

2 4 9 = 32

3 8 27 = 33 4 16 81 = 34

Elle sugg`ere que T(n) = 3log2n, ce qui est facilement prouv´e par r´ecurrence (Faites le `a la maison !). Ensuite, il faut prouver que 3log2n=O(nlog23) :

T(n) = 3log2n. Or 3 = 2log23

= (2log23)log2n mais (ab)c=ab×c

= 2(log23)(log2n)

= 2(log2n)(log23)

= (2(log2n))log23

= nlog23=O(nlog23)

CQFD. Ensuite, consid´ererT(n) = 3T(n/2)+nne fait qu’ajouter des termes parasites, de plus bas degr´e. Faites le ”`a la maison”.

N’a t-on rien oubli´e ? Les retenues ! Il faut les propager. Montrer que ce post traitement est lin´eaire enn.

Il y a des m´etodes plus compliqu´ees et plus efficaces pour le produit, en gros enO(nlogn) (je n´eglige des facteurs log(logn)...).

Apart´ e : conversion entre log

e

X et log

k

X

Retrouvez la relation entre logeX et logkX, o`ue est la base naturelle des log n´ep´eriens.

Solution (`a ne pas lire tout de suite...). SoitX > 0 un nombre. Soit x = logkX ⇔ kx = klogkX = X. Soit x = logeX ⇔ ex = elogeX = X. Donc X =kx=ex. D’o`u :

logeX = logekx=xlogek= (logkX)(logek) D’o`u : logkX = loglogeX

ek ou encore : loglogeX

kX = logek : tous les logarithmes sont proportionnels entre eux. Cela justifie la notationO(logb), o`u on ne pr´ecise pas la base du log.

2

Références

Documents relatifs

OBJETIVOS: O objetivo deste trabalho é discutir o enfoque CTS no currículo escolar, no ensino e na formação de professores a partir dos estudos e discussões propostos na

Dans le contexte d’enquˆ ete sur la pˆ eche sportive, la s´ election par la m´ ethode du cube semble ˆ etre une excellente alternative d’´ echantillonnage... R´

On peut alors choisir comme matrice de pr´econditionnement une matrice L voisine de B T en effectuant ce que l’on appelle une d´ecomposition de Cholesky incompl`ete qui consiste `a

[r]

On se propose de trouver un point o` u le minimum de J est atteint `a l’aide de

ecrire des m´ ethodes pour calculer la r´ eunion, la diff´ erence et l’intersection entre deux listes d’intervalles ; ¸ ca ressemble ` a la m´ ethode de fusion de deux listes

Ecrire une fonction (ou une m´ethode...) pour cr´eer une liste ´egale `a une liste donn´ee, mais o` u la premi`ere occurence d’un entier e (pass´e en param`etre) est

Vous admettrez que le PGCD de 2 nombres successifs dans la suite de Fi- bonacci est le pire des cas.. Quelle est la complexit´e du nombre d’´etapes du calcul du PGCD de a, b