Currently there may be errors shown on top of a page, because of a missing Wiki update (PHP version and extension DPL3). |
Topics | Help • Register • News • History • How to • Sequences statistics • Template prototypes |
Difference between revisions of "Multiplication"
m |
(Moving to new subcategory) |
||
Line 30: | Line 30: | ||
**[[Schöhage-Strassen]]: useful for numbers in the range of about 10000-40000+ digits. | **[[Schöhage-Strassen]]: useful for numbers in the range of about 10000-40000+ digits. | ||
**[[Färer]]: currently of theoretical interest only. | **[[Färer]]: currently of theoretical interest only. | ||
− | [[Category: | + | [[Category:Operations]] |
+ | [[Category:Multiplication| ]] |
Latest revision as of 17:00, 29 August 2022
Multiplication is the process of calculating the result when a number a is added to itself b times. The result of a multiplication is called the product of a and b, and each of the numbers is called a factor of the product ab.
Multiplication is denoted a×b,(a)(b), or simply ab. The symbol '×' is known as the multiplication sign.
The result of multiplying no numbers (empty product) is always 1 (the multiplicative identity, see below). The most common occurences are in exponentiation ([math]\displaystyle{ a^0=1 }[/math]) and factorial numbers (0!=1).
Contents
Multiplication properties
Associative property
[math]\displaystyle{ (x*y)z=x(y*z) }[/math]
Commutative property
[math]\displaystyle{ x*y=y*x }[/math]
Distributive property
[math]\displaystyle{ x(y+z)=xy+xz }[/math]
Identity element
[math]\displaystyle{ 1x=x }[/math]
Multiplication by zero
[math]\displaystyle{ 0x=0 }[/math]
Multiplication algorithms
When the product fits in a variable supported by the programming language, or in a register when programming in assembler, the multiplication is trivial. However if the largest available register is n bits wide the factors can only be n/2 bits wide each.
Otherwise there are several algorithms used to calculate products, depending on the size of the factors:
- Long multiplication: very fast for small factors, but slower than the other methods when the factors are large.
- Karatsuba multiplication: useful for numbers in the range of about 1000-10000 digits.
- Fourier transform multiplication: uses FFT to multiply extremely large numbers faster than the previous methods.
- Schöhage-Strassen: useful for numbers in the range of about 10000-40000+ digits.
- Färer: currently of theoretical interest only.