¿Cómo multiplicar dos números que tienen un sistema base distinto de 10 sin convertirlos al sistema decimal?

El marco que utilizamos para la multiplicación manual funciona para todas las bases, pero debes redefinir la tabla de multiplicación fundamental que utilizas para llevar.

Para el ejemplo dado (en la base 6), podemos desarrollar la tabla de multiplicar con bastante facilidad:
0 * n = 0 (para 0 <= n <6)
1 * n = n (para 0 <= n <6)
2 * 2 = 4
3 * 2 = 10
3 * 3 = 13
4 * 2 = 12
4 * 3 = 20
4 * 4 = 24
5 * 2 = 14
5 * 3 = 23
5 * 4 = 32
5 * 5 = 41

Entonces ahora tenemos nuestra tabla de multiplicar, y podemos determinar 253 * 425 en la base 6:
3 * 5 = 23, así que mantén 3, lleva # 1 = 2
5 * 5 = 41 + carry # 1 = 43, así que mantén 3, carry # 2 = 4
2 * 5 = 14 + carry # 2 = 22, así que mantén 2, carry # 3 = 2
no queda nada, así que sigue llevando # 3
La primera iteración de longhand nos da 2233 en la base 6, pero tenemos que pasar por 2 iteraciones más.

La posición más a la derecha de la iteración 2 es 0
3 * 2 = 10, así que mantenga 0, lleve # 1 = 1
5 * 2 = 14 + carry # 1 = 15, así que mantén 5, carry # 2 = 1
2 * 2 = 4 + carry # 2 = 5, así que mantén 5, no carry
La segunda iteración da 5500 en base 6

Dos posiciones más a la derecha de la iteración 3 son 0
3 * 4 = 20, así que mantenga 0, lleve # 1 = 2
5 * 4 = 32 + carry # 1 = 34, así que mantén 4, carry # 2 = 3
2 * 4 = 12 + carry # 2 = 15, así que mantén 5, carry # 3 = 1
no queda nada, así que sigue llevando # 3
La tercera iteración da 154000 en base 6

Finalmente, agregamos los resultados de estas iteraciones. Tenga en cuenta que la suma en cualquier base utiliza un módulo para el mantenimiento y la división para el acarreo:
2233 + 5500 = 12133
12133 + 154000 = 210133

Para verificar este resultado, convierta la expresión original a decimal, evalúe y convierta el resultado nuevamente a la base 6:
[matemáticas] 253_6 = 105_ {10} [/ matemáticas]
[matemáticas] 425_6 = 161_ {10} [/ matemáticas]
[matemáticas] 105_ {10} * 161_ {10} = 16905_ {10} [/ matemáticas]
[matemáticas] 16905_ {10} = 210133_6 [/ matemáticas]

Como puede ver, el método carry funciona para todas las bases, solo necesita reconstruir las tablas de multiplicar para la base específica.

Con respecto a la resta y la división:
La división aún sigue las mismas ideas que la mecanografía en decimal, pero aún necesita construir esa tabla de multiplicar. La división es simplemente la operación inversa de la multiplicación, por lo que la tabla de multiplicación también actúa esencialmente como una “tabla de división”.

Ejemplo de resta:
[matemáticas] 41_6 – 23_6 = 14_6 [/ matemáticas]

Como el 1 es insuficiente para eliminar 3, toma un 1 del 4, y por lo tanto agrega 6 al 1: 7 – 3 = 4 <- este es el dígito más a la derecha del resultado
Eliminó 1 de 4, por lo que el segundo dígito del resultado es 3 – 2 = 1. Eso significa que el resultado es 14.

Me resulta más fácil pensar en el comportamiento “similar a un módulo” de la multiplicación, división, suma y resta a mano al pensar en una matriz circular (en el sentido de la informática). Para una base N dada, hay N elementos en la matriz circular. Podemos establecer la convención de que estos elementos comienzan desde 0 y aumentan a N – 1 yendo alrededor de la matriz circular en sentido horario. Esta matriz representa un solo dígito, el “mantener” si está agregando o multiplicando. Cuando agrega 1 a 6, comienza en el elemento 2 y se mueve en el sentido de las agujas del reloj por 6 elementos. Si la base es 6, esto significa que básicamente vas en un círculo completo y regresas al elemento 2. Si la base es 7, esto significa que casi lo haces en círculo completo, terminando en el elemento 1 (es decir, “mantener” es 0, como el elemento 1 contiene el valor 0). El “carry” es cuántas veces pasa el espacio entre el elemento N – 1 y el elemento 1 en la matriz circular.

Espero que eso ayude.

“Los números que tienen un sistema base” no tienen sentido, ya que los números no “tienen un sistema base” (por ejemplo, pregúntese, ¿qué sistema base tiene el número de caracteres en este párrafo?).

Pero, por supuesto, desde un punto de vista algorítmico, la forma en que se representan las entradas y salidas es importante. No hay nada especial en el número 10, la pregunta también podría haber sido “¿cómo se multiplican los números, usando una representación base d para las entradas y salidas, donde d no es igual a 17, sin convertir a la base 17?”

El algoritmo habitual para la multiplicación (así como, por ejemplo, el algoritmo Karatsuba) no son específicos de ninguna base, como dijo Patrick. Uno debería esperar esto: sería bastante extraño si nuestro algoritmo de multiplicación simple habitual tuviera una conexión profunda con el número 10. Por supuesto, debe conocer las representaciones de base d de productos por pares de todos los números entre 0 y d-1.

Lo mismo ocurre con la suma y la resta y la división, y de nuevo, esto es de esperar.

Aplica el mismo método que conoce para la base 10, solo con el número seis (escrito 10 en el sistema de números basado en 6) en el papel del número diez.