Académique Documents
Professionnel Documents
Culture Documents
X= a Xb
Y= c Yd
X = a 2n/2 + b Y = c 2n/2 + d
X × Y = ac 2n + (ad + bc) 2n/2 + bd
X= a b
Y= c d
n/2 bits n/2 bits
X= a b
Y= c d
n/2 bits n/2 bits
X = a 10n/2 + b Y = c 10n/2 + d
X × Y = ac 10n + (ad + bc) 10n/2 + bd
Exemple (en décimal)
12345678 * 21394276
1234*2139 1234*4276 5678*2139 5678*4276
12*21 12*39 34*21 34*39
1*2 1*1 2*2 2*1
2 1 4 2
Ainsi : 12*21 = 2*102 + (1 + 4)101 + 2 = 252
X= a b
Y= c d
X × Y = ac 10n + (ad + bc) 10n/2 + bd
Exemple (en décimal)
12345678 * 21394276
1234*2139 1234*4276 5678*2139 5678*4276
252 468 714 1326
*104 + *102 + *102 + *1 = 2639526
X= a b
Y= c d
X × Y = ac 10n + (ad + bc) 10n/2 + bd
Exemple (en décimal)
12345678 * 21394276
1234*2139
2639526 1234*4276
5276584 5678*2139
121452425678*4276
24279128
*108 + *104 + *104 + *1
= 264126842539128
X= a b
Y= c d
X × Y = ac 10n + (ad + bc) 10n/2 + bd
Arbre des appels récursifs
T(n) n
T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) 16(n/4)
... ...
k
A chaque niveau k de l'arbre, il y a 4 nœuds.
Calculs en un nœud T(n/2 ) k
n/2k bits
X= a b
Y= c d
n/2k+1 bits n/2k+1 bits
n/2k
A un nœud T(n/2 ), on réalise une multiplication par 2 (n/2k
k
n/2k+1
décalages vers la gauche), une autre par 2 , et trois additions
avec des nombres comportant au plus n/2k-1 bits, soit :
O(n/2k) opérations élémentaires
Arbre des appels récursifs
T(n) n
T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) 16(n/4)
... ...
log 2 n log 2 n
4 k
T ( n)= ∑ 4
k n
( )
k
= ∑ n( 2) =n ( 2 log n +1−1 )=n(2 n−1)
2
k =0 2 k =0
Arbre des appels récursifs
T(n) n
T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) 16(n/4)
... ...
Complexité en O(n2)
Question
1 centime : P1 = a + b
1 centime : P2 = c + d
1€ : P3 = P1P2 = ac + ad + bc + bd
1€ : P4 = ac
Carl Friedrich Gauss
1€ : P5 = bd 1777-1855
1 centime : P6 = P4 – P5 = ac - bd
1 centime : P7 = P3 – P4 – P5 = bc + ad
mult gaussifiée (Karatsuba, 1962)
n bits
X= a b
Y= c d
n/2 bits n/2 bits
T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) 9(n/4)
... ...
... ...
1+ log 2 n
3
log 2 n
( ) −1 3
) ( )
log 2 n
2
(( )
3 3 3
log
3 k log 3
T ( n)= ∑ n ( ) =n 2
2
=2 n −1 =2 n n 2 −1 =3 n 2 −2 n
k =0 3 2 2 2
−1
2
mult2 : arbre des appels récursifs
T(n) n
T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) 9(n/4)
... ...
... ...
log 2 3
Complexité : 3n −2 n ∈ O ( n1,58 ) car log 3=1,58 2
O(n ) << O(n )
1,58 2
n2
n1,58
T(n/b2) T(n/b2) T(n/b2) T(n/b2) T(n/b2) T(n/b2) T(n/b2) T(n/b2) T(n/b2) a2(n/b2)
... ...
... ...
● Comme k varie de 0 (racine) à logbn (feuilles), ces nombres forment une suite
géométrique de raison a/bd
● Trois cas :
– La raison est inférieure à 1 : la suite est décroissante et la somme des termes
est du même ordre de grandeur que le premier terme, soit O(nd)
– La raison est supérieure à 1 : la suite est croissante et la somme des termes
est du même ordre de grandeur que le dernier terme, soit O(nlog a) :
– La raison est exactement 1 : dans ce cas les O(log n) termes de la suite sont
égaux à O(nd)
Le théorème « marche » bien
● Pour T(n) = aT(n/b) + O(nd), le terme général est :