Estoy tratando de entender el siguiente problema de Erdos y Surányi en Temas de la teoría de números (Springer), capítulo 1 ("Divisibilidad, el Teorema Fundamental de la Teoría de Números"):
Puedes multiplicar dos números enteros positivos de la siguiente manera. Escribe los dos números uno al lado del otro. Divide el primero por la mitad, redondeando hacia abajo a un entero, y escribe el resultado debajo. Duplica el segundo número, escribiendo el resultado debajo. Continuamos este proceso de dividir/duplicar hasta que nos queda un $1$ en la primera columna. Tacha todos aquellos números en la segunda columna que están frente a un número par y suma los números restantes en esta columna para obtener el producto. Demuestra que esto funciona.
Y este es un ejemplo, $73 \cdot 217$:
$(73,217)$
$(36, 434)$
$(18, 868)$
$(9, 1736)$
$(4, 3472)$
$(2, 6944)$
$(1, 13888)$
Luego $73 \cdot 217 = 217+1736+13888 = 15841$, lo cual es correcto.
... y realmente no logro visualizar la razón por la que funciona. Mis pensamientos hasta ahora:
-
Estamos dividiendo por $2$ en la columna de la izquierda, por lo que solo los valores impares provienen de una división de un número par anterior en la columna izquierda, lo que significa que la división anterior por $2$ fue "perfecta", es decir, sin decimales.
-
Puedo aproximar el valor del producto de dos números naturales $p \cdot q$ si divido el primer número por $2$ continuamente hasta que llegue a $1$ y multiplico el segundo por $2$ al mismo tiempo (por lo que el valor final del segundo es una aproximación del producto).
Pero ¿por qué eliminamos algunos de ellos para la suma final? Me gustaría plantear las siguientes preguntas:
-
¿Cómo funciona?
-
Estamos sumando los números de la segunda columna que están frente a un número impar. Entonces, ¿qué representa la suma de los números que no utilizamos de la segunda columna?
Todo esto probablemente sea bastante obvio, pero no logro ver la luz.
10 votos
Los antiguos egipcios tenían un método precursor similar: es.wikipedia.org/wiki/Multiplicación_egipcia_antigua
3 votos
Por favor, tenga en cuenta que este método se puede adaptar fácilmente para otras bases numéricas, no hay nada especial acerca de 2, excepto por el hecho de que divide a 10 que es la base que más usamos! (y por lo tanto es inmediato calcular el módulo 2 de una representación en base 10). Para adaptarlo a la base b, divida por b en cada paso y registre el resto, luego multiplique cada resto por la columna correcta y sume. Además, detenga la primera columna al alcanzar un número menor que b. La columna derecha se genera multiplicando por b.
0 votos
@jwodder gracias por corregir, no soy (obviamente) nativo de inglés y por lo tanto escribir ideas en un idioma diferente suele llevar tiempo.
1 votos
Código Java para el algoritmo: stackoverflow.com/questions/53472498/…
0 votos
@mathnoob ¡muchas gracias por la referencia!
1 votos
Si estás interesado en otros métodos de cálculo rápido, consulta es.wikipedia.org/wiki/Sistema_Trachtenberg