logo search
tsvpis

2.4.1. Быстрое умножение чисел

При обычном умножении столбиком нам потребуется n2 операций, где n – количество разрядов чисел. Попробуем произвести умножение чисел быстрее. Для этого поступим следующим образом:

Пусть x и y – два n-разрядных числа (n = 2k).

Разобьем их запись пополам, т.е. на два отрезка длины k;

x = a · 2k + b

, где

y = c · 2k + d

x = x1x2…xk xk+1…x2k

a = старшие b = младшие

разряды разряды

y = y1y2yk yk+1y2k

c = старшие d = младшие

разряды разряды

Рассмотрим умножение x · y по обычным формулам:

4 произведения

x·y = (a·2k+b)(c·2k+d) = a×c·2k+(a×d + b×c)·2k + b×d (2.7)