¿Es posible calcular rápidamente un dividendo si se conoce el módulo de dos divisores conocidos?

Desafortunadamente, el valor se determina solo hasta un módulo, que es igual al MCD de los divisores. Tenga en cuenta que 127 es una solución a su problema:

[matemáticas] 127 \ bmod 23 = 12 [/ matemáticas]

[matemáticas] 127 \ bmod 19 = 13 [/ matemáticas]

Lo que estás buscando se llama el teorema del resto chino: Wikipedia, al menos cuando todos los divisores son coprimos por pares.

Un algoritmo rápido es usar el algoritmo euclidiano extendido para calcular los valores en la identidad de Bezout. Para el caso de los dos divisores, queremos soluciones enteras para:

[matemáticas] 23 x + 19 y = 1 [/ matemáticas]

una solución es

[matemáticas] 23 \ veces 5 + 19 \ veces -6 = 1 [/ matemáticas]

Que dice

[matemáticas] 23 \ veces 5 \ equiv 1 \ pmod {19} [/ matemáticas]

Entonces multiplicar por el segundo módulo nos da

[matemáticas] 23 \ veces 5 \ veces 13 \ equiv 13 \ pmod {19} [/ matemáticas]

Con este número, podemos tantos múltiplos de 19 como sea necesario, por lo que podemos resolver de manera similar el mod 23 multiplicando por el primer módulo

[matemáticas] 19 \ veces -6 \ veces 12 \ equiv 12 \ pmod {23} [/ matemáticas]

Así,

[matemáticas] X = 23 \ veces 5 \ veces 13 + 19 \ veces -6 \ veces 12 = 127 [/ matemáticas]

es una solución al conjunto de ecuaciones modulares.

Una manera más simple pero lenta de hacerlo es mirar todas las soluciones posibles para la primera ecuación y conectarlas a la segunda

[matemáticas] 12 [/ matemáticas] no funciona

[matemáticas] 12 + 23 = 35, 35 \ bmod 19 = 18 [/ matemáticas]

[matemáticas] 35 + 23 = 58, 58 \ bmod 19 = 1 [/ matemáticas]

y así sucesivamente hasta llegar a 127. (Más lento para grandes números, de todos modos).

Sí, pero la cosa es que no siempre es una de esas respuestas,

te dará X,

y X + k * (23 * 19) sigue siendo una respuesta para todos los k> 0

El teorema es el teorema del recordatorio chino, lea sobre esto.