Un algoritmo de multiplicación es un algoritmo (o método) para multiplicar dos números. Dependiendo del tamaño de los números, diferentes algoritmos son más eficientes que otros. Se conocen numerosos algoritmos y se ha investigado mucho sobre el tema.
El método más antiguo y sencillo, conocido desde la antigüedad como multiplicación larga o multiplicación de primaria , consiste en multiplicar cada cifra del primer número por cada cifra del segundo y sumar los resultados. Tiene una complejidad temporal de , donde n es el número de dígitos. Cuando se hace a mano, esto también se puede reformular como multiplicación del método de cuadrícula o multiplicación de celosía . En software, esto puede denominarse "desplazar y agregar" debido a que los desplazamientos de bits y la suma son las dos únicas operaciones necesarias.
En 1960, Anatoly Karatsuba descubrió la multiplicación de Karatsuba , lo que desató una avalancha de investigaciones sobre algoritmos de multiplicación rápida. Este método utiliza tres multiplicaciones en lugar de cuatro para multiplicar dos números de dos dígitos. (También se puede utilizar una variante de esto para multiplicar números complejos rápidamente). Hecho de forma recursiva , esto tiene una complejidad temporal de . Dividir números en más de dos partes da como resultado la multiplicación de Toom-Cook ; por ejemplo, el uso de tres partes da como resultado el algoritmo Toom-3 . Usar muchas partes puede establecer el exponente arbitrariamente cerca de 1, pero el factor constante también crece, lo que lo hace poco práctico.
En 1968 se descubrió el algoritmo de Schönhage-Strassen , que utiliza una transformada de Fourier sobre un módulo . Tiene una complejidad temporal de . En 2007, Martin Fürer propuso un algoritmo con complejidad . En 2014, Harvey, Joris van der Hoeven y Lecerf propusieron uno con complejidad , haciendo explícita la constante implícita; esto se mejoró hasta 2018. Por último, en 2019, Harvey y van der Hoeven idearon un algoritmo con complejidad . Esto coincide con la suposición de Schönhage y Strassen de que este sería el límite óptimo, aunque sigue siendo una conjetura hoy en día.
Los algoritmos de multiplicación de enteros también se pueden utilizar para multiplicar polinomios mediante el método de sustitución de Kronecker .
Si se utiliza un sistema de numeración posicional , en las escuelas se enseña una forma natural de multiplicar números como multiplicación larga , a veces llamada multiplicación de la escuela primaria , a veces llamada algoritmo estándar : multiplicar el multiplicando por cada dígito del multiplicador y luego sumar todos los resultados correctamente desplazados. Requiere memorización de la tabla de multiplicar de un solo dígito.
Este es el algoritmo habitual para multiplicar números más grandes a mano en base 10. Una persona que realiza una multiplicación larga en papel anotará todos los productos y luego los sumará; un usuario de ábaco sumará los productos tan pronto como se calcule cada uno.
Este ejemplo utiliza una multiplicación larga para multiplicar 23.958.233 (multiplicando) por 5.830 (multiplicador) y llega a 139.676.498.390 para el resultado (producto).
23958233× 5830——————————————— 00000000 ( = 23.958.233 × 0) 71874699 ( = 23.958.233 × 30) 191665864 ( = 23.958.233 × 800)+ 119791165 ( = 23.958.233 × 5.000)——————————————— 139676498390 ( = 139.676.498.390)
En algunos países como Alemania , la multiplicación anterior se representa de manera similar pero con el producto original mantenido en posición horizontal y el cálculo comienza con el primer dígito del multiplicador: [1]
23958233 · 5830——————————————— 119791165 191665864 71874699 00000000——————————————— 139676498390
El siguiente pseudocódigo describe el proceso de multiplicación anterior. Mantiene solo una fila para mantener la suma que finalmente se convierte en el resultado. Tenga en cuenta que el operador '+=' se utiliza para indicar la suma del valor existente y la operación de almacenamiento (similar a lenguajes como Java y C) para que sea más compacto.
multiplicar ( a [ 1 .. p ] , b [ 1 .. q ] , base ) // Operandos que contienen los dígitos más a la derecha en el índice 1 producto = [ 1 .. p + q ] // Asignar espacio para el resultado para b_i = 1 a q // para todos los dígitos en b llevar = 0 for a_i = 1 to p // para todos los dígitos en a producto [ a_i + b_i - 1 ] += llevar + a [ a_i ] * b [ b_i ] llevar = producto [ a_i + b_i - 1 ] / base producto [ a_i + b_i - 1 ] = producto [ a_i + b_i - 1 ] mod base producto [ b_i + p ] = acarreo // el último dígito proviene del acarreo final devolver producto
Algunos chips implementan una multiplicación larga, en hardware o en microcódigo , para varios tamaños de palabras enteras y de punto flotante. En aritmética de precisión arbitraria , es común utilizar multiplicaciones largas con la base establecida en 2 w , donde w es el número de bits de una palabra, para multiplicar números relativamente pequeños. Para multiplicar dos números con n dígitos usando este método, se necesitan alrededor de n 2 operaciones. Más formalmente, multiplicar dos números de n dígitos mediante una multiplicación larga requiere Θ ( n 2 ) operaciones de un solo dígito (sumas y multiplicaciones).
Cuando se implementan en software, los algoritmos de multiplicación largos deben lidiar con el desbordamiento durante las sumas, lo que puede resultar costoso. Una solución típica es representar el número en una base pequeña, b , de modo que, por ejemplo, 8 b sea un entero de máquina representable. Luego se pueden realizar varias adiciones antes de que se produzca un desbordamiento. Cuando el número se vuelve demasiado grande, sumamos parte del mismo al resultado, o trasladamos y asignamos la parte restante a un número menor que b . Este proceso se llama normalización . Richard Brent utilizó este enfoque en su paquete Fortran, MP. [2]
Inicialmente, las computadoras usaban un algoritmo muy similar a la multiplicación larga en base 2, pero los procesadores modernos han optimizado los circuitos para multiplicaciones rápidas utilizando algoritmos más eficientes, al precio de una realización de hardware más compleja. [ cita necesaria ] En base dos, la multiplicación larga a veces se llama "desplazar y sumar" , porque el algoritmo simplifica y simplemente consiste en desplazarse hacia la izquierda (multiplicar por potencias de dos) y sumar. La mayoría de los microprocesadores disponibles actualmente implementan este u otros algoritmos similares (como la codificación Booth ) para varios tamaños de números enteros y de punto flotante en multiplicadores de hardware o en microcódigo . [ cita necesaria ]
En los procesadores disponibles actualmente, una instrucción de desplazamiento bit a bit suele ser (pero no siempre) más rápida que una instrucción de multiplicación y se puede utilizar para multiplicar (desplazar a la izquierda) y dividir (desplazar a la derecha) por potencias de dos. La multiplicación por una constante y la división por una constante se pueden implementar utilizando una secuencia de desplazamientos y sumas o restas. Por ejemplo, hay varias formas de multiplicar por 10 utilizando únicamente el desplazamiento de bits y la suma.
(( x << 2 ) + x ) << 1 # Aquí 10*x se calcula como (x*2^2 + x)*2 ( x << 3 ) + ( x << 1 ) # Aquí 10*x se calcula como x*2^3 + x*2
En algunos casos, tales secuencias de cambios y sumas o restas superarán a los multiplicadores de hardware y especialmente a los divisores. Una división por un número de la forma o a menudo se puede convertir en una secuencia tan corta.
Además de la multiplicación larga estándar, existen varios otros métodos que se utilizan para realizar la multiplicación a mano. Estos algoritmos pueden diseñarse para lograr velocidad, facilidad de cálculo o valor educativo, particularmente cuando no se dispone de computadoras o tablas de multiplicar .
El método de la cuadrícula (o método de la caja) es un método introductorio a la multiplicación de varios dígitos que a menudo se enseña a los alumnos de la escuela primaria o primaria . Ha sido una parte estándar del currículo nacional de matemáticas de la escuela primaria en Inglaterra y Gales desde finales de los años 1990. [3]
Ambos factores se dividen ("dividen") en sus partes de centenas, decenas y unidades, y luego los productos de las partes se calculan explícitamente en una etapa relativamente simple de sólo multiplicación, antes de que estas contribuciones se sumen para dar la respuesta final en una etapa de adición separada.
El cálculo de 34 × 13, por ejemplo, se podría realizar usando la cuadrícula:
300 40 90 + 12 ———— 442
seguido de la suma para obtener 442, ya sea en una sola suma (ver a la derecha) o formando los totales fila por fila (300 + 40) + (90 + 12) = 340 + 102 = 442.
Este enfoque de cálculo (aunque no necesariamente con la disposición explícita de la cuadrícula) también se conoce como algoritmo de productos parciales . Su esencia es el cálculo de las multiplicaciones simples por separado, dejando todas las sumas para la etapa final de recopilación.
En principio, el método de la cuadrícula se puede aplicar a factores de cualquier tamaño, aunque el número de subproductos se vuelve engorroso a medida que aumenta el número de dígitos. Sin embargo, se considera un método útil y explícito para introducir la idea de multiplicaciones de varios dígitos; y, en una época en la que la mayoría de los cálculos de multiplicación se realizan con una calculadora o una hoja de cálculo, en la práctica puede ser el único algoritmo de multiplicación que algunos estudiantes necesitarán.
La multiplicación de celosía o tamiz es algorítmicamente equivalente a la multiplicación larga. Requiere la preparación de un entramado (una cuadrícula dibujada en papel) que guía el cálculo y separa todas las multiplicaciones de las sumas . Fue introducido en Europa en 1202 en el Liber Abaci de Fibonacci . Fibonacci describió la operación como mental, utilizando su mano derecha e izquierda para realizar los cálculos intermedios. Matrakçı Nasuh presentó seis variantes diferentes de este método en este libro del siglo XVI, Umdet-ul Hisab. Fue ampliamente utilizado en las escuelas de Enderun en todo el Imperio Otomano. [4] Los huesos de Napier , o varillas de Napier, también utilizaban este método, según publicó Napier en 1617, año de su muerte.
Como se muestra en el ejemplo, el multiplicando y el multiplicador se escriben arriba y a la derecha de una red o tamiz. Se encuentra en "Aritmética" de Muhammad ibn Musa al-Khwarizmi , una de las fuentes de Leonardo mencionada por Sigler, autor de "Fibonacci's Liber Abaci", 2002. [ cita necesaria ]
Las imágenes de la derecha muestran cómo calcular 345 × 12 usando la multiplicación reticular. Como ejemplo más complicado, considere la siguiente imagen que muestra el cálculo de 23.958.233 multiplicado por 5.830 (multiplicador); el resultado es 139.676.498.390. Observe que 23.958.233 está en la parte superior de la red y 5.830 está en el lado derecho. Los productos llenan la red y la suma de esos productos (en la diagonal) está en los lados izquierdo e inferior. Luego esas sumas se suman como se muestra.
El método binario también se conoce como multiplicación campesina, porque ha sido ampliamente utilizado por personas clasificadas como campesinos y, por lo tanto, no han memorizado las tablas de multiplicar necesarias para una multiplicación larga. [5] [ verificación fallida ] El algoritmo se utilizaba en el antiguo Egipto. [6] Sus principales ventajas son que se puede enseñar rápidamente, no requiere memorización y se puede realizar utilizando fichas, como fichas de póquer , si no se dispone de papel y lápiz. La desventaja es que requiere más pasos que una multiplicación larga, por lo que puede resultar difícil de manejar para números grandes.
En un papel, escriba en una columna los números que obtiene cuando reduce repetidamente a la mitad el multiplicador, ignorando el resto; en una columna al lado duplica repetidamente el multiplicando. Tacha cada fila en la que el último dígito del primer número sea par y suma los números restantes en la segunda columna para obtener el producto.
Este ejemplo utiliza la multiplicación campesina para multiplicar 11 por 3 y llegar a un resultado de 33.
Decimal: Binario:11 3 1011 115 6 101 1102121011001 24 1 11000 —— —————— 33 100001
Describiendo los pasos explícitamente:
El método funciona porque la multiplicación es distributiva , entonces:
Un ejemplo más complicado, utilizando las cifras de los ejemplos anteriores (23.958.233 y 5.830):
Decimal: Binario:583023958233101101100011010110110110010010110110012915 47916466 101101100011 101101101100100101101100101457 95832932 10110110001 10110110110010010110110010072819166586410110110001011011011001001011011001000364383331728101101100101101101100100101101100100001827666634561011011010110110110010010110110010000091 1533326912 1011011 101101101100100101101100100000045 3066653824 101101 101101101100100101101100100000002261333076481011010110110110010010110110010000000011 12266615296 1011 10110110110010010110110010000000005 24533230592 101 10110110110010010110110010000000000249066461184101011011011001001011011001000000000001 98132922368 1 10110110110010010110110010000000000000 ———————————— 1022143253354344244353353243222210110 (antes de llevar) 139676498390 10000010000101010111100011100111010110
En algunos casos, se puede utilizar esta fórmula para facilitar la realización de las tareas de multiplicación:
En el caso de que y sean números enteros, tenemos que
porque y son ambos pares o ambos impares. Esto significa que
y es suficiente (pre)calcular la parte integral de cuadrados dividida por 4 como en el siguiente ejemplo.
A continuación se muestra una tabla de búsqueda de cuartos de cuadrado con el resto descartado para los dígitos del 0 al 18; esto permite la multiplicación de números hasta 9×9 .
Si por ejemplo quisieras multiplicar 9 por 3, observas que la suma y la diferencia son 12 y 6 respectivamente. Si miramos ambos valores en la tabla, obtenemos 36 y 9, cuya diferencia es 27, que es el producto de 9 y 3.
En la época prehistórica, la multiplicación de un cuarto de cuadrado implicaba la función del suelo ; que algunas fuentes [7] [8] atribuyen a las matemáticas babilónicas (2000-1600 a. C.).
Antoine Voisin publicó una tabla de cuartos de cuadrado del 1 al 1000 en 1817 como ayuda en la multiplicación. Samuel Laundy publicó una tabla más grande de cuartos de cuadrado de 1 a 100.000 en 1856, [9] y Joseph Blater publicó una tabla de 1 a 200.000 en 1888. [10]
Los multiplicadores de un cuarto de cuadrado se utilizaban en computadoras analógicas para formar una señal analógica que era el producto de dos señales de entrada analógicas. En esta aplicación, la suma y diferencia de dos voltajes de entrada se forman utilizando amplificadores operacionales . El cuadrado de cada uno de ellos se aproxima utilizando circuitos lineales por partes . Finalmente, la diferencia de los dos cuadrados se forma y se escala en un factor de un cuarto utilizando otro amplificador operacional.
En 1980, Everett L. Johnson propuso utilizar el método del cuarto de cuadrado en un multiplicador digital . [11] Para formar el producto de dos números enteros de 8 bits, por ejemplo, el dispositivo digital forma la suma y la diferencia, busca ambas cantidades en una tabla de cuadrados, toma la diferencia de los resultados y divide por cuatro desplazando dos bits a la derecha. Para enteros de 8 bits, la tabla de cuartos de cuadrado tendrá 2 9 −1=511 entradas (una entrada para el rango completo 0..510 de sumas posibles, las diferencias usarán solo las primeras 256 entradas en el rango 0..255) o 2 9 −1=511 entradas (utilizando para diferencias negativas la técnica de 2 complementos y enmascaramiento de 9 bits, que evita probar el signo de diferencias), siendo cada entrada de 16 bits de ancho (los valores de las entradas son de (0²/4 )=0 a (510²/4)=65025).
La técnica del multiplicador de un cuarto de cuadrado ha beneficiado a los sistemas de 8 bits que no admiten ningún multiplicador de hardware. Charles Putney implementó esto para el 6502 . [12]
Una línea de investigación en informática teórica trata sobre el número de operaciones aritméticas de un solo bit necesarias para multiplicar números enteros de dos bits. Esto se conoce como complejidad computacional de la multiplicación. Los algoritmos habituales hechos a mano tienen una complejidad asintótica de , pero en 1960 Anatoly Karatsuba descubrió que era posible una mayor complejidad (con el algoritmo de Karatsuba ).
Actualmente, el algoritmo con mejor complejidad computacional es un algoritmo de 2019 de David Harvey y Joris van der Hoeven , que utiliza las estrategias de uso de transformaciones de teoría de números introducidas con el algoritmo de Schönhage-Strassen para multiplicar números enteros usando solo operaciones. [13] Se conjetura que este es el mejor algoritmo posible, pero se desconocen los límites inferiores.
La multiplicación de Karatsuba es un algoritmo de divide y vencerás O( n log 2 3 ) ≈ O( n 1.585 ), que utiliza la recursividad para fusionar subcálculos.
Al reescribir la fórmula, es posible realizar subcálculos/recursividad. Al hacer recursividad, se puede resolver esto de manera rápida.
Sea y representado como cadenas de dígitos en alguna base . Para cualquier entero positivo menor que , se pueden escribir los dos números dados como
donde y son menores que . El producto es entonces
dónde
Estas fórmulas requieren cuatro multiplicaciones y eran conocidas por Charles Babbage . [14] Karatsuba observó que se puede calcular en sólo tres multiplicaciones, a costa de algunas sumas adicionales. Con y como antes se puede observar que
Debido a la sobrecarga de la recursividad, la multiplicación de Karatsuba es más lenta que la multiplicación larga para valores pequeños de n ; Por lo tanto, las implementaciones típicas cambian a una multiplicación larga para valores pequeños de n .
Al explorar patrones después de la expansión, se ve lo siguiente:
Cada sumando está asociado a un número binario único de 0 a , por ejemplo , etc. Además; B se potencia al número 1, en esta cadena binaria, multiplicado por m.
Si expresamos esto en menos términos, obtenemos:
, donde significa dígito en el número i en la posición j. Darse cuenta de
El algoritmo de Karatsuba fue el primer algoritmo conocido para la multiplicación que es asintóticamente más rápido que la multiplicación larga [15] y, por lo tanto, puede verse como el punto de partida para la teoría de las multiplicaciones rápidas.
Otro método de multiplicación se llama Toom-Cook o Toom-3. El método Toom-Cook divide cada número para multiplicarlo en varias partes. El método Toom-Cook es una de las generalizaciones del método Karatsuba. Un Toom-Cook de tres vías puede hacer una multiplicación de tamaño 3N por el costo de cinco multiplicaciones de tamaño N. Esto acelera la operación en un factor de 9/5, mientras que el método Karatsuba la acelera en 4/3.
Aunque usar más y más partes puede reducir aún más el tiempo dedicado a multiplicaciones recursivas, los gastos generales de las sumas y la gestión de dígitos también aumentan. Por esta razón, el método de las transformadas de Fourier suele ser más rápido para números con varios miles de dígitos y asintóticamente más rápido para números aún mayores.
Todo número en base B se puede escribir como un polinomio:
Además, la multiplicación de dos números podría considerarse como el producto de dos polinomios:
Porque, para :, tenemos una convolución.
Al usar fft (transformación rápida de Fourier) con regla de convolución, podemos obtener
● . Eso es; ● , donde es el coeficiente correspondiente en el espacio de Fourier. Esto también se puede escribir como: fft(a * b) = fft(a) ● fft(b).
Tenemos el mismo coeficiente debido a la linealidad bajo la transformación de Fourier, y porque estos polinomios solo constan de un término único por coeficiente:
y
Regla de convolución: ●
Hemos reducido nuestro problema de convolución a un problema de producto, mediante fft.
Al encontrar ifft (interpolación polinómica), para cada uno , se obtienen los coeficientes deseados.
El algoritmo utiliza la estrategia de dividir y conquistar para dividir el problema en subproblemas.
Tiene una complejidad temporal de O ( n log( n ) log(log( n ))).
El algoritmo fue inventado por Strassen (1968). Schönhage y Strassen proporcionaron garantías prácticas y teóricas en 1971, lo que dio como resultado el algoritmo de Schönhage-Strassen . [dieciséis]
En 2007, el matemático suizo Martin Fürer de la Universidad Estatal de Pensilvania mejoró la complejidad asintótica de la multiplicación de enteros a n log( n ) 2 Θ( log * ( n ) ) utilizando transformadas de Fourier sobre números complejos , [17] donde log * denota el logaritmo iterado . Anindya De, Chandan Saha, Piyush Kurur y Ramprasad Saptharishi dieron un algoritmo similar utilizando aritmética modular en 2008 logrando el mismo tiempo de ejecución. [18] En el contexto del material anterior, lo que estos últimos autores han logrado es encontrar N mucho menor que 2 3 k + 1, de modo que Z / NZ tiene una raíz unitaria (2 m ). Esto acelera el cálculo y reduce la complejidad del tiempo. Sin embargo, estos últimos algoritmos sólo son más rápidos que los de Schönhage-Strassen para entradas imprácticamente grandes.
En 2014, Harvey, Joris van der Hoeven y Lecerf [19] dieron un nuevo algoritmo que logra un tiempo de ejecución de , haciendo explícita la constante implícita en el exponente. También propusieron una variante de su algoritmo que logra pero cuya validez se basa en conjeturas estándar sobre la distribución de los números primos de Mersenne . En 2016, Covanov y Thomé propusieron un algoritmo de multiplicación de enteros basado en una generalización de los números primos de Fermat que, conjeturalmente, alcanza un límite de complejidad de . Esto coincide con el resultado condicional de 2015 de Harvey, van der Hoeven y Lecerf, pero utiliza un algoritmo diferente y se basa en una conjetura diferente. [20] En 2018, Harvey y van der Hoeven utilizaron un enfoque basado en la existencia de vectores reticulares cortos garantizados por el teorema de Minkowski para demostrar un límite de complejidad incondicional de . [21]
En marzo de 2019, David Harvey y Joris van der Hoeven anunciaron el descubrimiento de un algoritmo de multiplicación O ( n log n ) . [22] Se publicó en Annals of Mathematics en 2021. [23] Debido a que Schönhage y Strassen predijeron que n log( n ) es el "mejor resultado posible", Harvey dijo: "... se espera que nuestro trabajo sea el "Es el final del camino para este problema, aunque todavía no sabemos cómo demostrarlo rigurosamente". [24]
Existe un límite inferior trivial de Ω ( n ) para multiplicar dos números de n bits en un solo procesador; no se conoce ningún algoritmo de coincidencia (en máquinas convencionales, es decir, en máquinas equivalentes de Turing) ni ningún límite inferior más definido. La multiplicación se encuentra fuera de AC 0 [ p ] para cualquier p primo , lo que significa que no existe una familia de circuitos de tamaño polinómico (o incluso subexponencial) de profundidad constante que utilicen puertas AND, OR, NOT y MOD p que puedan calcular un producto. Esto se deriva de una reducción en profundidad constante de MOD q a la multiplicación. [25] Los límites inferiores para la multiplicación también son conocidos para algunas clases de programas de ramificación . [26]
La multiplicación compleja normalmente implica cuatro multiplicaciones y dos sumas.
O
Como observó Peter Ungar en 1963, se puede reducir el número de multiplicaciones a tres, utilizando esencialmente el mismo cálculo que el algoritmo de Karatsuba . [27] El producto ( a + bi ) · ( c + di ) se puede calcular de la siguiente manera.
Este algoritmo utiliza sólo tres multiplicaciones, en lugar de cuatro, y cinco sumas o restas en lugar de dos. Si una multiplicación es más cara que tres sumas o restas, como cuando se calcula a mano, entonces se gana en velocidad. En las computadoras modernas, multiplicar y sumar pueden tomar aproximadamente el mismo tiempo, por lo que es posible que no haya ganancia de velocidad. Existe una contrapartida en el sentido de que puede haber cierta pérdida de precisión al utilizar punto flotante.
Para las transformadas rápidas de Fourier (FFT) (o cualquier transformación lineal ), las multiplicaciones complejas se realizan mediante coeficientes constantes c + di (llamados factores de giro en FFT), en cuyo caso dos de las sumas ( d − c y c + d ) se pueden calcular previamente. . Por lo tanto, sólo se requieren tres multiplicaciones y tres sumas. [28] Sin embargo, intercambiar una multiplicación por una suma de esta manera puede que ya no sea beneficioso con las unidades modernas de punto flotante . [29]
Todos los algoritmos de multiplicación anteriores también se pueden ampliar para multiplicar polinomios . Alternativamente , se puede utilizar la técnica de sustitución de Kronecker para convertir el problema de multiplicar polinomios en una única multiplicación binaria. [30]
Los métodos de multiplicación largos se pueden generalizar para permitir la multiplicación de fórmulas algebraicas:
14ac - 3ab + 2 multiplicado por ac - ab + 1
14ac -3ab 2 ca-ab 1 ————————————————————— 14a 2 c 2 -3a 2 aC 2ac -14a 2 aC 3 a 2 b 2 -2ab 14ac -3ab 2 ———————————————————————————————————————— 14a 2 c 2 -17a 2 aC 16ac 3a 2 b 2 -5ab +2 ========================================= [31]
Como ejemplo adicional de multiplicación basada en columnas, considere multiplicar 23 toneladas largas (t), 12 quintales (cwt) y 2 cuartos (qtr) por 47. Este ejemplo utiliza medidas avoirdupois : 1 t = 20 cwt, 1 cwt = 4 qtr.
t cwt qtr 23 12 2 47x ———————————————— 141 94 94 940 470 29 23 ———————————————— 1110 587 94 ———————————————— 1110 7 2 ================= Respuesta: 1110 toneladas 7 cwt 2 cuartos
Primero multiplica los cuartos por 47, el resultado 94 se escribe en el primer espacio de trabajo. Luego, multiplica cwt 12*47 = (2 + 10)*47 pero no sumes los resultados parciales (94, 470) todavía. Asimismo, multiplique 23 por 47 para obtener (141, 940). Se suma la columna de cuartos y el resultado se coloca en el segundo espacio de trabajo (un movimiento trivial en este caso). 94 quarters son 23 cwt y 2 qtr, así que coloca el 2 en la respuesta y pon el 23 en la siguiente columna de la izquierda. Ahora suma las tres entradas en la columna cwt dando 587. Esto es 29 t 7 cwt, así que escribe el 7 en la respuesta y el 29 en la columna de la izquierda. Ahora suma la columna de toneladas. No es necesario realizar ningún ajuste, por lo que el resultado simplemente se copia.
Se pueden utilizar el mismo diseño y métodos para cualquier medida tradicional y monedas no decimales, como el antiguo sistema británico £sd .