Karatsuba Multiplication

Faster integer multiplication.

Problem: Multiply two nn-digit numbers.

Grade school: O(n2)O(n^2) digit operations.

Karatsuba's insight: Split each number into two halves. x=a10n/2+bx = a \cdot 10^{n/2} + b, y=c10n/2+dy = c \cdot 10^{n/2} + d.

xy=ac10n+(ad+bc)10n/2+bdxy = ac \cdot 10^n + (ad + bc) \cdot 10^{n/2} + bd

This needs 44 multiplications. Karatsuba reduces it to 33: (ad+bc)=(a+b)(c+d)acbd(ad + bc) = (a+b)(c+d) - ac - bd

Recurrence: T(n)=3T(n/2)+O(n)T(n) = 3T(n/2) + O(n)

By Master Theorem: T(n)=O(nlog23)O(n1.585)T(n) = O(n^{\log_2 3}) \approx O(n^{1.585})

This beats O(n2)O(n^2) for large nn. Modern libraries use even faster algorithms (Toom-Cook, FFT).