Algorisme de multiplicació

De Viquipèdia
Dreceres ràpides: navegació, cerca
Per a altres significats vegeu «multiplicació».

Un algorisme de multiplicació és un algorisme (o mètode) per multiplicar dos nombres. Depenent de la mida dels nombres, hi ha diferents algorismes. Els algorismes de multiplicació existeixen des de l'adveniment del sistema decimal.

Multiplicació de dos enters[modifica | modifica el codi]

El mètode utilitzat habitualment per multiplicar dues nombres enters, requereix l'aprenentatge previ de les taules de multiplicar. La multiplicació es comença des de la dreta, anant amb compte amb la llei dels signes i de col·locar les unitats d'un ordre sota les unitats del mateix ordre (unitats sota unitats, desenes sota desenes, centenes amb centenes, etc.). Després se sumen els productes de cada xifra del segon factor per totes les del primer.

Exemple[modifica | modifica el codi]

Sigui la multiplicació de 4.103 com multiplicant i 254 com a multiplicador.

Es posa el multiplicador sota del multiplicant, fent coincidir les columnes de les unitats per la dreta.


 \begin{array}{rrrrrrr}
 & & & 4 & 1 & 0 & 3 \\
 \times & & & & 2 & 5 & 4 \\
 \hline
 \end{array}

D'acord amb les taules elementals, es multiplica la xifra d'unitats (4) del multiplicador per cada una de les xifres del multiplicant, començant per les unitats (3) traginant, si s'escau, les desenes (4 × 3 = 12, transport d'1 unitat) com a suma al resultat de la multiplicació de la xifra següent [(4 × 0)+1 = 1), 1 de ròssec], continuadora de la mateixa manera amb les altres xifres del multiplicant (4103 × 4 = 16412). Considerem aquesta línia com a línia provisional.


 \begin{array}{rrrrrrr}
 & & & 4 & 1 & 0 & 3 \\
 \times & & & & 2 & 5 & 4 \\
 \hline
 & & 1 & 6 & 4 & 1 & 2 \\
 \end{array}

Es procedeix d'igual forma amb la xifra de les desenes del multiplicador amb cadascuna de les xifres del multiplicant, si bé el resultat s'escriu sota de la fila anterior corrent un lloc a l'esquerra la xifra de les unitats. (4103 × 5 = 20515)


 \begin{array}{rrrrrrr}
 & & & 4 & 1 & 0 & 3 \\
 \times & & & & 2 & 5 & 4 \\
 \hline
 & & 1 & 6 & 4 & 1 & 2 \\
 & 2 & 0 & 5 & 1 & 5 & \\
 \end{array}

Es continua així amb totes les xifres del multiplicador. (4103 × 2 = 8206)


 \begin{array}{rrrrrrr}
 & & & 4 & 1 & 0 & 3 \\
 \times & & & & 2 & 5 & 4 \\
 \hline
 & & 1 & 6 & 4 & 1 & 2 \\
 & 2 & 0 & 5 & 1 & 5 & \\
 & 8 & 2 & 0 & 6 & & \\
 \end{array}

Finalment es sumen les xifres de cadascuna de les línies provisionals, considerant els buits de la dreta com zeros.


 \begin{array}{rrrrrrr}
 & & & 4 & 1 & 0 & 3 \\
 \times & & & & 2 & 5 & 4 \\
 \hline
 & & 1 & 6 & 4 & 1 & 2 \\
 & 2 & 0 & 5 & 1 & 5 & \\
 & 8 & 2 & 0 & 6 & & \\
 \hline
 1 & 0 & 4 & 2 & 1 & 6 & 2 \\
 \end{array}

El resultat o Multiplicació és el que resulta d'aquesta suma (4103 × 254 = 1042162)

Exemple 2[modifica | modifica el codi]

En aquest exemple s'utilitza la multiplicació llarga de multiplicar 23.958.233 (multiplicant) per 5.830 (multiplicador) i s'arriba al 139.676.498.390 com a resultat del producte.


 \begin{array}{rrrrrrrrrrrr}
 & & & & 2 & 3 & 9 & 5 & 8 & 2 & 3 & 3 \\
 \times & & & & & & & & 5 & 8 & 3 & 0 \\
 \hline
 \end{array}
 \begin{array}{l}
 \longleftarrow \; Multiplicant \\
 \longleftarrow \; Multiplicador \\

 \end{array}

Es realitzen les operacions:


 \begin{array}{rrrrrrrrrrrr}
 & & & & 2 & 3 & 9 & 5 & 8 & 2 & 3 & 3 \\
 \times & & & & & & & & 5 & 8 & 3 & 0 \\
 \hline
 & & & & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 & & & 7 & 1 & 8 & 7 & 4 & 6 & 9 & 9 & \\
 & 1 & 9 & 1 & 6 & 6 & 5 & 8 & 6 & 4 & & \\
 1 & 1 & 9 & 7 & 9 & 1 & 1 & 6 & 5 & & & \\
 \hline
 1 & 3 & 9 & 6 & 7 & 6 & 4 & 9 & 8 & 3 & 9 & 0 \\
 \end{array}
 \begin{array}{l}
 \\
 \\
 
 \longleftarrow 23 \, 958 \, 233 \times 0 \\
 \longleftarrow 23 \, 958 \, 233 \times 30 \\
 \longleftarrow 23 \, 958 \, 233 \times 800 \\
 \longleftarrow 23 \, 958 \, 233 \times 5.000 \\
 
 \\
 \end{array}

Que donen com a resultat:


 \begin{array}{rrrrrrrrrrrr}
 & & & & 2 & 3 & 9 & 5 & 8 & 2 & 3 & 3 \\
 \times & & & & & & & & 5 & 8 & 3 & 0 \\
 \hline
 & & & & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 & & & 7 & 1 & 8 & 7 & 4 & 6 & 9 & 9 & \\
 & 1 & 9 & 1 & 6 & 6 & 5 & 8 & 6 & 4 & & \\
 1 & 1 & 9 & 7 & 9 & 1 & 1 & 6 & 5 & & & \\
 \hline
 1 & 3 & 9 & 6 & 7 & 6 & 4 & 9 & 8 & 3 & 9 & 0 \\
 \end{array}
 \begin{array}{l}
 \longleftarrow \; Multiplicant \\
 \longleftarrow \; Multiplicador \\
 
 \\
 \\
 \\
 \\
 
 \longleftarrow \; Producte \\
 \end{array}

Multiplicació hindú o de Fibonacci[modifica | modifica el codi]

En primer lloc, es dibuixa la taula i s'escriuen els nombres que es multiplicaran al voltant de les files i les columnes. A continuació, s'omplen les cel amb les desenes en els triangles superiors i les unitats en els inferiors.
Finalment, se suma seguint les línies diagonals "emportant-se" les desenes quan és necessari, fins a obtenir la solució.

La multiplicació hindú o de Fibonacci requereix la preparació d'una taula (una reixeta dibuixada en un paper) que serveix de guia per al càlcul. Va ser introduïda a Europa el 1202 per Fibonacci en el seu Liber Abaci. Leonardo va descriure l'operació com "càlcul mental", i utilitzava els dits de les mans per realitzar els càlculs intermedis. Napier també va publicar aquest mètode el 1617, l'any en què va morir.

Com es mostra en l'exemple, el multiplicant i el multiplicador s'escriuen sobre a la dreta de la taula.

  • Durant la fase de multiplicació, la taula s'omple amb els productes dels dígits que assenyalen cada fila i columna, que llancen nombres de dos dígits: les desenes s'escriuen en la cantonada superior esquerra de cada cel, i les unitats a la inferior dreta.
  • Durant la fase d'addició, se suma la taula segons les diagonals.
  • Finalment, si és necessari "portar" les desenes, es mostra la solució de dalt a baix i d'esquerra a dreta de la vora de la taula, emportant-se les desenes en sentit invers, com en la multiplicació o en la suma habitual.

Exemple[modifica | modifica el codi]

Les imatges de la dreta mostren com calcular 345 × 12 usant la multiplicació hindú. Com a exemple més complex, més avall es mostra el càlcul de 23.958.233 per 5.830, el resultat és 139.676.498.390. Observeu que el nombre 23.958.233 es troba a la part superior de la taula, i que 5.830 està verticalment en el seu costat dret. Els productes omplen la taula i la suma d'aquests productes (diagonalment) es troben a la banda esquerra i l'inferior. A continuació aquestes sumes s'agreguen, com es mostra.

 2 3 9 5 8 2 3 3
 +---+---+---+---+---+---+---+---+-
 |1 /|1 /|4 /| 2/| 4/| 1/| 1/| 1/|
 | / | / | / | / | / | / | / | / |5
 01|/ 0|/ 5|/ 5|/ 5|/ 0|/ 0|/ 5|/ 5|
 +---+---+---+---+---+---+---+---+-
 |1 /|2 /|7 /|4 /|6 /|1 /|2 /|2 /|
 | / | / | / | / | / | / | / | / |8
 02|/ 6|/ 4|/ 2|/ 0|/ 4|/ 6|/ 4|/ 4|
 +---+---+---+---+---+---+---+---+-
 |0 /|0 /|2 /|1 /|2 /|0 /|0 /|0 /|
 | / | / | / | / | / | / | / | / |3
 17|/ 6|/ 9|/ 7|/ 5|/ 4|/ 6|/ 9|/ 9|
 +---+---+---+---+---+---+---+---+-
 |0 /|0 /|0 /|0 /|0 /|0 /|0 /|0 /|
 | / | / | / | / | / | / | / | / |0
 24|/ 0|/ 0|/ 0|/ 0|/ 0|/ 0|/ 0|/ 0|
 +---+---+---+---+---+---+---+---+-
 26 15 13 18 17 13 09 00
01 
002 
0017 
00024 
000026 
0000015 
00000013 
000000018 
0000000017 
00000000013 
000000000009 
0000000000000
=============
139676498390
= 139.676.498.390

Implementació en ordinadors[modifica | modifica el codi]

Si un sistema posicional numeral està en ús, un mètode natural de l'ensenyament de la multiplicació de nombres és impartit a les escoles com multiplicació llarga, de vegades anomenat multiplicació de primària: multiplicar el multiplicant per cada dígit del multiplicador i després afegir tots els resultats canviats pròpiament. Això requereix la memorització de la taula de multiplicar dels dígits simples.

Els humans normalment fan servir aquest algorisme en base 10. Els ordinadors solen utilitzar un algorisme semblant de "canviar i afegir" en base 2. Les persones per fer multiplicacions llargues escriuran tots els productes i després els s'uniran tots junts, els ordinadors (i operadors de àbac) sumaran els productes tan aviat com van sent calculats.

Alguns xips implementen aquest algorisme per la mida de diversos nombres enters i nombres flotants en maquinari o en microcodi. En aritmètica de precisió arbitrària és comú l'ús de les multiplicacions llargues amb la base fixada en 2w, on w és el nombre de bits en una paraula, per multiplicar nombres relativament petits.

Per multiplicar dos nombres amb n dígits utilitzant aquest mètode, es necessiten n quadrat operacions. Formalment: utilitzar una mètrica de mida natural de nombres de dígits, el temps de l'algorisme de complexitat multiplicant dos nombres de dígits n utilitzant la multiplicació llarga és de l'ordre exacte de n quadrat Θ (n2).

Quan són implementats en programari, els algorismes de multiplicació llarga han d'encarregar-se del desbordament durant les sumes (addicions), que poden ser cares. Per aquesta raó, un enfocament típic és representar el nombre en una base petita b com a tal, per exemple, 8b2 és una representació de nombres enters (Richard Brent va usar aquest enfocament en el seu paquet MP Fortran); podem llavors dur a terme diverses sumes abans d'haver d'encarregar del desbordament. Quan el nombre es fa massa llarg, afegim part d'ell al resultat o el portem i tracem un mapa de la part restant cap a un nombre menor ab; aquest procés es coneix com nominalització.

Àlgebra: multiplicació de monomis[modifica | modifica el codi]

Per multiplicar monomis no cal que siguin semblants. Per això es multipliquen els coeficients, es deixa la mateixa part literal i se sumen els graus. Exemple:

 (3xy) \cdot (4x^2y^3) = 12x^3y^4

Multiplicació d'un polinomi i un monomi[modifica | modifica el codi]

Es multiplica cada terme del polinomi pel monomi. Exemples:

 a (b+c) = ab+ac \, \!
 3 bx (2a+b) = 6abx+3b^2x \, \!

Multiplicació de dos polinomis[modifica | modifica el codi]

En resum, es pot concloure amb aquesta regla:

  1. Es multiplica cada terme del primer polinomi per cada terme del segon.
  2. Es redueixen els termes semblants.

Així:

 (-3a) \cdot (-2b) = (6AB) \, \!
 (-3a) \cdot (2b) =-6AB \, \!

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]