En este artículo facilito un fichero que permite resolver múltiples
ejercicios de ecuaciones diofánticas del tipo Ax±By=C. De nuevo uso el
paquete xlop de LaTeX para realizar las divisiones de números
enteros. El fichero está preparado para generar las soluciones en los
diferentes casos que se pueden presentar: no exista solución o tenga
infinitas soluciones. El código LyX usado es mínimo y casi todo el que
se ha usado está escrito directamente en LaTeX.
El paquete xloppresenta algunas limitaciones como son:
Las divisiones euclídeas en modo <<gráfico>> solo son correctas con
números naturales. Por ese motivo no las muestro si están implicados
números negativos.
Las divisiones euclídeas en modo <<texto>> con números negativos no
se calculan bien si son exactas, así por ejemplo el resultado de
usar\opidiv[style=text]{-4}{2} no es
correcto y se obtiene −4=2×(−3)+2. En ese caso no se
hace uso del paquete y se realiza la división de forma directa.
El fichero permite que los coeficientes de las ecuaciones diofánticas se
puedan introducir de forma manual o que se generen de forma aleatoria.
También podemos determinar qué número de ejercicios deseamos resolver.
Lo único que tendremos que adecuar en el fichero es:
# Listas de posibles ejercicios (coeficientes de las ecuaciones diofánticas)
# para que luego las incorpore deben tener de nombre Ei, i:1..n
E1 = [3,5,7]
E2 = [4,6,8]
E3 = [4,6,7]
E4 = [3,-2,4]
E5 = [-14,21,777]
E6 = [-37,-25,-3]
E7 = [12,-16,20]
E8 = [83,50,-5]
E9 = [176,-583,55]
E10 = [38,-34,6]
E11 = [-10,-54,8]
E12 = [30,-25,15]
E13 = [27,99,18]
E14 = [-57,105,-5]
E15 = [69,63,15]
E16 = [29,-40,5]
E17 = [75,213,7]
E18 = [-138,-57,-8]
E19 = [-29,-25,3]
E20 = [-98,-94,92]
# Podemos optar por obtener los coeficientes de las ecuaciones de forma: aleatoria o manual (de dos formas)
# a -> aleatoria
# m1 -> Se resuelven todos/algunos de los ejercicios propuestos anteriormente.
# El número de ellos se define con el valor de 'maxejer' comentado después.
# m2 -> Valor por defecto. Podemos definirla "a mano" a partir de los valores de ejercicios anteriores, por ejemplo con
ListaEjer = [E14, E1, E5, E20]
opcion = 'a'
# Rango en el que obtener los valores aleatorios (-rango, rango)
rango = 100
# Número máximo de ejercicios. Tiene una doble función:
# Si optamos por valores aleatorios es el número de ejercicios que se generarán.
# Si optamos por valores introducidos a mano:
# Es el número máximo de ejercicios que se resolverán, comenzando por los números Ei menores.
# Si tenemos definidos 10 ejercicios y aquí ponemos 15, se resolverán los 10.
# Si tenemos definidos 10 ejercicios y aquí ponemos 3, solo se resolverán los 3 primeros: E1, E2 y E3
maxejer = 25
# Si es True, al final aparece la solución directa con sympy
comprobar = True
#comprobar = False
Con los datos anteriores de entrada se han generado 25 ejercicios
aleatorios. En el pdf que se puede descargar al final del artículo se
muestra el resultado.
En el html que sigue muestro los que se generan con la opción m2 y
la lista de ejercicios [E14, E1, E5, E20] cuyos datos
se han introducidos de forma manual.
La ecuación diofántica Ax+By=C tiene solución si y solo
si d=mcd(A,B) es un divisor de C. En ese caso la
ecuación tiene infinitas soluciones.
Si resolvemos la ecuación A⋅x+B⋅y=d y
q=C/d tenemos que
q⋅A⋅x+q⋅B⋅y=q⋅d=C.
Problemas
Resuelve la ecuación diofántica
−57x+105y=−5
Solución
−5=3×−2+1
No tiene solución ya que el mcd(A,B) no divide a C
Resuelve la ecuación diofántica
3x+5y=7
Solución
Resolvamos la ecuación
3x+5y=1
con q=7/1=7 .
Partimos del sistema {1⋅x+0⋅y0⋅x+1⋅y=3=5 que tiene como soluciones x=3 e y=5.
Su forma matricial es:
Paso 0
(100135)
5=3×1+2⇒ Restamos a la
segunda fila 1 veces la primera
Paso 1
(1−10132)
3=2×1+1⇒ Restamos a la
primera fila 1 veces la segunda
Paso 2
(2−1−1112)
2=1×2⇒ Restamos a la
segunda fila 2 veces la primera
Paso 3
(2−5−1310)
Obtenemos el sistema de ecuaciones equivalente al primero: