02.06.2013 Views

Algoritmi di moltiplicazione veloce

Algoritmi di moltiplicazione veloce

Algoritmi di moltiplicazione veloce

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algoritmo <strong>di</strong> Karatsuba (1962)<br />

a(x) = a 1 x + a 0 ; b(x) = b 1 x + b 0 a(x), b(x) ∈ R[x]<br />

c(x) = a(x)∙b(x) = c 2 x 2 + c 1 x + c 0<br />

= (a 1 b 1 )x 2 + (a 1 b 0 +a 0 b 1 )x + (a 0 b 0 )<br />

a 1 b 1<br />

= c 2<br />

= (a 1 b 1 )x 2 + [(a 1 + a 0 )(b 1 + b 0 ) ­ a 1 b 1 ­ a 0 b 0 ] x + (a 0 b 0 )<br />

Naif – O ( n 2 = n log4/log2 ) Karatsuba – O ( n log3/log2 )<br />

a 0 b 1<br />

a 1 b 0<br />

a 0 b 0<br />

= c 0<br />

a 1 b 1<br />

4 prodotti 3 prodotti<br />

= c 2<br />

(a 1 + a 0 )(b 1 + b 0 )<br />

­ c 0 ­ c 2<br />

a 0 b 0<br />

= c 0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!