Calculadora de ecuaciones diofánticas lineales
Resuelve la ecuación diofántica lineal ax + by = c en números enteros. Introduce los coeficientes a, b y c para comprobar si existen soluciones, obtener una solución particular y la familia completa x = x₀ + (b/g)t, y = y₀ − (a/g)t.
Resuelve ax + by = c en números enteros
Fórmula de la ecuación diofántica lineal
Donde:
- \(a\), \(b\) — los coeficientes enteros de \(x\) y de \(y\)
- \(c\) — el término independiente, un número entero
- \(g = \gcd(a, b)\) — el máximo común divisor (mcd) de los coeficientes
- \((x_0, y_0)\) — una solución particular, que se obtiene de la identidad de Bézout \(g = s\,a + t\,b\) multiplicándola por \(c/g\)
- \(t\) — un parámetro entero arbitrario que genera todas las soluciones
La ecuación tiene soluciones enteras si y solo si \(\gcd(a,b)\) divide a \(c\). Cuando es así, hay infinitas: partiendo de una solución \((x_0, y_0)\), todas las demás se obtienen sumando \(b/g\) a \(x\) y restando \(a/g\) de \(y\) el mismo número de veces \(t\).
Ecuación diofántica lineal: ejemplo de cálculo
Ejemplo: resolver \(12x + 18y = 30\) en números enteros (los valores que aparecen por defecto en la calculadora).
\[ \gcd(12, 18): \quad 18 = 1 \cdot 12 + 6, \quad 12 = 2 \cdot 6 + 0 \implies \gcd(12, 18) = 6 \]
\[ 6 \mid 30 \implies \text{existen soluciones} \]
\[ \text{Bézout: } 6 = (-1) \cdot 12 + 1 \cdot 18, \qquad \frac{c}{g} = \frac{30}{6} = 5 \]
\[ x_0 = -1 \cdot 5 = -5, \qquad y_0 = 1 \cdot 5 = 5 \]
\[ 12 \cdot (-5) + 18 \cdot 5 = -60 + 90 = 30 \;\checkmark \]
Al trasladar \(x_0\) al intervalo \(0 \le x < |b/g| = 3\) se obtiene la solución particular equivalente \((1, 1)\), ya que \(12 \cdot 1 + 18 \cdot 1 = 30\).
Resultado: todas las soluciones enteras son \(x = 1 + 3t\), \(y = 1 - 2t\) para cualquier entero \(t\); por ejemplo, \((1, 1)\), \((4, -1)\), \((-2, 3)\).
Cómo usar la calculadora
- Introduce el coeficiente entero de \(x\) en el campo Coeficiente de x (a).
- Introduce el coeficiente entero de \(y\) en el campo Coeficiente de y (b).
- Introduce el término independiente en el campo Término independiente (c).
- Lee los bloques de resultado: ¿Existen soluciones enteras? te indica si \(\gcd(a,b)\) divide a \(c\); Una solución (x₀, y₀) ofrece una solución particular ya verificada; Solución entera general muestra la familia completa con el parámetro \(t\); Pasos de la solución presenta el algoritmo de Euclides, los coeficientes de Bézout y el razonamiento seguido.
Los tres valores de entrada deben ser números enteros (positivos, negativos o cero). Si introduces un valor no entero, la calculadora te pedirá un número entero, porque por definición las ecuaciones diofánticas solo se resuelven en el conjunto de los enteros.
¿Qué es una ecuación diofántica lineal?
Una ecuación diofántica es una ecuación cuyas soluciones tienen que ser números enteros. La ecuación diofántica lineal \(ax + by = c\) es el caso más sencillo: pide todos los pares de enteros \((x, y)\) que la cumplen exactamente, sin permitir fracciones ni decimales. Este tipo de ecuaciones surge de forma natural cuando las cantidades son indivisibles: monedas de valores fijos, cajas de artículos, personas o baldosas.
El dato clave es la condición de solubilidad: \(ax + by\) es siempre múltiplo de \(\gcd(a, b)\), de modo que \(c\) también debe ser múltiplo de \(\gcd(a, b)\). Por ejemplo, \(6x + 10y\) es siempre par, así que \(6x + 10y = 7\) no tiene soluciones enteras por más que lo busques. Cuando la condición se cumple, la identidad de Bézout garantiza al menos una solución, que el algoritmo extendido de Euclides encuentra con eficiencia.
Cómo interpretar el resultado: si existen soluciones, hay infinitas, dispuestas en una progresión aritmética. La solución general \(x = x_0 + (b/g)t\), \(y = y_0 - (a/g)t\) las enumera todas: cada paso del parámetro \(t\) aumenta \(x\) en \(b/g\) y disminuye \(y\) en \(a/g\), manteniendo constante el valor de \(ax + by\). Si necesitas soluciones en un intervalo concreto (por ejemplo, no negativas), prueba varios valores de \(t\) y quédate con los que lo cumplan.
Supuestos, limitaciones y consejos
- Solo enteros. Los coeficientes deben ser números enteros; la ecuación no se resuelve sobre los racionales ni sobre los reales. En los reales, \(ax + by = c\) siempre tiene soluciones si \(a\) o \(b\) es distinto de cero: la restricción a los enteros es justo lo que hace interesante el problema.
- Límites de tamaño. El cálculo usa aritmética estándar, así que conviene mantener los coeficientes dentro del rango entero seguro (aproximadamente hasta 15 dígitos) para evitar problemas de precisión.
- Los casos degenerados están contemplados. Si \(a = b = 0\), la ecuación es o bien siempre cierta (\(c = 0\), cualquier par sirve) o bien nunca cierta. Si exactamente un coeficiente es cero, la ecuación queda con una sola variable y la calculadora la resuelve directamente.
- Cualquier solución particular sirve. El par \((x_0, y_0)\) no es único: la calculadora lo desplaza a una forma compacta con \(0 \le x_0 < |b/g|\), pero cualquier elección genera el mismo conjunto completo de soluciones a través del parámetro \(t\).
- Comprueba tu resultado. Verifica siempre por sustitución: calcula \(a x_0 + b y_0\) y confirma que es igual a \(c\). La calculadora hace esta comprobación por ti en la salida.
Si tu problema implica dos ecuaciones lineales a la vez en lugar de una, un sistema como \(ax + by = c\), \(dx + ey = f\) se resuelve con el método de eliminación y no mediante la divisibilidad del mcd. El razonamiento diofántico también está detrás de temas como la variación directa, donde dos cantidades de valores enteros crecen en proporción fija, y es una herramienta clásica en problemas de olimpiadas y de teoría de números.
Preguntas frecuentes
¿Cómo resolver una ecuación diofántica lineal a mano?
Primero calcula \(g = \gcd(a, b)\) con el algoritmo de Euclides. Si \(g\) no divide a \(c\), no hay soluciones enteras. Si lo divide, aplica el algoritmo extendido de Euclides para hallar los coeficientes de Bézout con \(g = sa + tb\), multiplica por \(c/g\) para obtener \(x_0 = s \cdot c/g\) y \(y_0 = t \cdot c/g\), y escribe todas las soluciones como \(x = x_0 + (b/g)t\), \(y = y_0 - (a/g)t\).
¿Se pueden usar coeficientes negativos o un término independiente negativo?
Sí: los tres valores de entrada pueden ser negativos o cero; solo se rechazan las fracciones y los decimales. El mcd se calcula siempre con los valores absolutos, por lo que resulta positivo. Las fórmulas de la solución general funcionan sin cambios con \(a\), \(b\) o \(c\) negativos; lo único que cambia son los signos de los pasos \(b/g\) y \(a/g\) en las fórmulas con el parámetro.
¿Cuál es la forma más rápida de saber si no existe solución?
Comprueba la divisibilidad por el mcd: existen soluciones si y solo si \(\gcd(a,b)\) divide a \(c\). Una prueba rápida de paridad detecta muchos casos típicos: si \(a\) y \(b\) son ambos pares, el lado izquierdo es siempre par, así que un \(c\) impar vuelve la ecuación irresoluble. De igual modo, \(6x + 10y\) es siempre par y, además, solo puede ser congruente con múltiplos de \(\gcd(6,10)=2\).
¿Cómo encontrar solo soluciones no negativas o positivas?
La familia paramétrica \(x = x_0 + (b/g)t\), \(y = y_0 - (a/g)t\) te da una condición lineal sobre \(t\). Resuelve las dos desigualdades \(x \ge 0\) e \(y \ge 0\) respecto de \(t\), toma la intersección (es un intervalo finito de enteros) y enumera cada valor. Si el intervalo resultante de \(t\) es vacío, no existe ninguna solución con ambas variables no negativas.
¿Por qué la calculadora da una solución particular distinta de la de mi libro?
Las soluciones particulares nunca son únicas: si \((x_0, y_0)\) funciona, también funciona \((x_0 + b/g,\; y_0 - a/g)\). Ambas respuestas son correctas, porque generan el mismo conjunto completo de soluciones a través del parámetro \(t\). Esta calculadora desplaza \(x_0\) al intervalo compacto \(0 \le x_0 < |b/g|\), algo que los libros de texto no siempre hacen. Verifica siempre sustituyendo en \(ax + by\).
¿Qué ocurre si a o b es igual a cero?
La ecuación se reduce a una sola variable. Si \(b = 0\), necesitas que \(a \mid c\); entonces \(x = c/a\) queda fijado mientras que \(y\) puede ser cualquier entero, y de forma simétrica si \(a = 0\). Si ambos coeficientes son cero, la ecuación es o siempre cierta (\(c = 0\), cualquier par sirve) o nunca cierta. La calculadora gestiona directamente todos estos casos degenerados.
¿En qué se diferencia de resolver una ecuación lineal normal?
Sobre los números reales, \(ax + by = c\) con un coeficiente distinto de cero siempre tiene soluciones; de hecho, toda una recta de ellas. La versión diofántica exige únicamente pares de enteros, lo que puede hacerla insoluble (cuando \(\gcd(a,b) \nmid c\)) o dar un conjunto discreto y equiespaciado de soluciones a lo largo de esa recta en lugar de un continuo. El paso entre soluciones consecutivas es exactamente \((b/g, -a/g)\).