Ads
related to: how to do double digit multiplication
Search results
Results From The WOW.Com Content Network
The standard procedure for multiplication of two n-digit numbers requires a number of elementary operations proportional to , or () in big-O notation. Andrey Kolmogorov conjectured that the traditional algorithm was asymptotically optimal, meaning that any algorithm for that task would require () elementary operations.
During the multiplication phase, the lattice is filled in with two-digit products of the corresponding digits labeling each row and column: the tens digit goes in the top-left corner. During the addition phase, the lattice is summed on the diagonals.
A binary computer does exactly the same multiplication as decimal numbers do, but with binary numbers. In binary encoding each long number is multiplied by one digit (either 0 or 1), and that is much easier than in decimal, as the product by 0 or 1 is just 0 or the same number.
Trachtenberg defined this algorithm with a kind of pairwise multiplication where two digits are multiplied by one digit, essentially only keeping the middle digit of the result. By performing the above algorithm with this pairwise multiplication, even fewer temporary results need to be held. Example:
The run-time bit complexity to multiply two n-digit numbers using the algorithm is ( ) in big O notation. The Schönhage–Strassen algorithm was the asymptotically fastest multiplication method known from 1971 until 2007.
x 1 = x; x 2 = x 2 for i = k - 2 to 0 do if n i = 0 then x 2 = x 1 * x 2; x 1 = x 1 2 else x 1 = x 1 * x 2; x 2 = x 2 2 return x 1. The algorithm performs a fixed sequence of operations (up to log n): a multiplication and squaring takes place for each bit in the exponent, regardless of the bit's specific value. A similar algorithm for ...