¿Cuáles son algunos métodos para encontrar enteros positivos [matemática] a, b, c [/ matemática] de manera que [matemática] 31 | 5a + 7b + 11c [/ matemática]?

Primero tenga en cuenta que para cualquiera de a, b, c que si x es una solución, entonces también lo es x + 31. Entonces, para mantenerlo simple, restringiría los valores de a, b, c para que estén en el rango de 0 a 30 A continuación, tenga en cuenta que 5 * 6 + 1 = 31, entonces 5 * (6x) + x = 31x. Cualquiera de los dos valores en el rango de byc producirá un valor único de a, dado por la fórmula a = 6 (7b + 11c) mod 31.

Ejemplo, b = 2, c = 3, a = 6 (7 (2) + 11 (3)) mod 31 = 3.
5 (3) + 7 (2) + 11 (3) = 62 = 31 (2).

EDITAR:
5 fue el caso fácil pero obliga a a ser la variable dependiente. También podría notar que 7 * 22 + 1 = 31 * 5 y 11 * 14 + 1 = 31 * 5. Utilizándolos también obtendrá la solución completa en tres fórmulas:

a = 6 (7b + 11c) mod 31
b = 22 (5a + 11c) mod 31
c = 14 (5a + 7b) mod 31

que se simplifican a:

a = (11b + 4c) mod 31
b = (17a + 25c) mod 31
c = (8a + 5b) mod 31

Luego, para dos de a, b, c, puede obtener el tercer valor con la fórmula adecuada.

Como hay tres ecuaciones desconocidas y una, entonces si hay una fórmula que puede obtenerse para uno de los desconocidos en términos de los otros dos desconocidos, entonces podemos enumerar todas las soluciones al problema.

[matemáticas] 31 | 5a + 7b + 11c [/ matemáticas] también se puede escribir como
[matemáticas] 5a + 7b + 11c \ equiv 0 \ mod {31} [/ matemáticas]

[matemáticas] 5a \ equiv – (7b + 11c) \ mod {31} [/ matemáticas]

[matemáticas] a \ equiv – (7b + 11c) * 5 ^ {- 1} \ mod {31} [/ matemáticas]

5 ^ {- 1} es 25 como [matemáticas] 5 * 25 \ equiv 1 \ mod {31} [/ matemáticas] por lo que lo anterior se convierte en

[matemáticas] a \ equiv -175b-275c \ mod {31} [/ matemáticas]

[matemáticas] a \ equiv 11b + 4c \ mod {31} [/ matemáticas]

Se puede seguir el mismo proceso para encontrar la dependencia de b en a & c y la de c en a & b.

5, 7, 11 y 31 son todos primos, lo que hace que resolver a, b, c sea muy fácil, pero al mismo tiempo, desafortunadamente, hay muchas soluciones y no estoy seguro de si hay una manera fácil de describir todas las soluciones. Entonces, ¿cómo encontrar soluciones para a, byc?

Bueno, primero dividimos 31 o 62 (Editado gracias a Michal Forišek) en 3 enteros. Entonces, deje que [math] k_1, k_2, k_3 [/ math] sea tal que [math] k_1 + k_2 + k_3 = 31 [/ math] o [math] k_1 + k_2 + k_3 = 62 [/ math].

Ahora, resolvemos para a, byc resolviendo las siguientes ecuaciones:
[matemáticas] 5a = k_1 \ mod 31 [/ matemáticas]
[matemáticas] 7b = k_2 \ mod 31 [/ matemáticas]
[matemáticas] 11c = k_3 \ mod 31 [/ matemáticas]

Por ejemplo, si [math] k_1 = 10, k_2 = 10, k_3 = 11 [/ math], entonces podemos obtener una serie de soluciones para a, byc, una de las cuales es [math] a = 2, b = 28, c = 1 [/ matemáticas]. Uno puede notar que [matemáticas] 5 \ veces 2 + 7 \ veces 28 + 11 \ veces 1 = 217 = 31 \ veces 7 [/ matemáticas].

Resuelva la ecuación de Diophantine: [matemáticas] 5a + 7b + 11c = 31k [/ matemáticas].

Esto se puede hacer convenientemente usando la biblioteca de Sympy de Python.


Ahora puede crear otro script para escribir valores de [matemáticas] a, b, c [/ matemáticas] (y [matemáticas] k [/ matemáticas]). Debe tomar decisiones inteligentes para obtener los valores positivos de estas variables que desee. Así es como podría aparecer el código, sin una selección tan inteligente.