Multiplication of Large Integers
If the
conventional algorithm for multiplying two n-digit integers is used,
each of the n digits of the first number is multiplied by each of the n
digits of the second number for the total of n2 digit
multiplications.
The divide-and-conquer
strategy can be used to design an algorithm with fewer than n2
multiplications.
The basic idea
of the algorithm can be demonstrated using:
Consider a case of two-digit integers, say, 23
and 14. These numbers can be represented as follows:
23 = 2 x 101
+ 3 x 100 and 14 = 1 x 101 + 4 x 100.
Now multiplying
them,
23 x 14 = (2 x
101 + 3 x 100 ) x (1 x 101 + 4 x 100.)
= (2 x 1) 102 + (2 x 4 +
3 x 1) 101 + (3 x 4) 100.
For any pair of two-digit numbers a =
a1a0 and b = b1b0, their product c
can be computed by the formula
c = a x b = c2102
+ c1101 + c0 ,
where
c2 = a1 x b1 is the product of first
digits.
c1 = (a1 + a0) x (b1 + b0)
– (c2 + c0) is the product of sum of a’s
digits and sum of b’s digits minus the sum of c2 and c0.
c0 = a0 x b0 is the product of second
digits.
If n/2
is even, the same method can be applied for computing the products c2,
c0, and c1. Thus, if n is
a power of 2, a recursive algorithm can be written for computing the product
of two n-digit integers. The recursion is stopped when n becomes
1. It can also be stopped when n is small enough to multiply the numbers
of that size directly.
Since multiplication of n-digit numbers requires three
multiplications of n/2-digit numbers, the
recurrence for the number of multiplications M(n) is
M(n) = 3M (n/2) for n > 1, M(1) = 1.
Solving it by backward substitutions for n=2k gives
M(2k) = 3M(2k-1) = 3[3M(2k-2)] = 32M(2k-2)
= …… = 3iM(2k-i) = 3kM(2k-k) = 3k.
Since k = log2 n,
If A(n) be the number of digit additions and subtractions
executed by the above algorithm in multiplying two n-digit decimal
integers. Besides 3A(n/2) of these operations needed to compute
the three products of n/2-digit numbers, the above formulas require five
additions and one subtraction. Hence, the recurrence is
Applying the Master Theorem,
A(n) approximately gives nlog23 , which means that the total number of additions
and subtractions have the same asymptotic order of growth as the number of
multiplications.
No comments:
Post a Comment