Combinación lineal de dos números: halle x, y con ax+by=c
Halle los enteros que, multiplicados por 15 y 25, suman 10: 15 × 4 + 25 × (−2) = 10, posible porque su máximo común divisor, 5, divide a 10. Si no lo divide, se le indica que no hay solución. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- A
- 15
- B
- 25
- C
- 10
- Gcd
- 5
- X
- 4
- Y
- -2
- Verificación
- 10
Una combinación lineal de dos enteros a y b es cualquier entero que puede escribirse como a por x más b por y para ciertos enteros x e y. No todo objetivo es alcanzable: el teorema de Bézout afirma que el conjunto alcanzable es exactamente el de los múltiplos del máximo común divisor de a y b. Esta calculadora de combinación lineal de dos números acepta los coeficientes a y b más un objetivo c, calcula ese mcd con el algoritmo de Euclides extendido y devuelve un par particular de coeficientes que realiza el objetivo, o informa de que no existe solución entera. Los estudiantes la usan para comprobar ejercicios diofánticos; los desarrolladores reutilizan el mismo contrato puro en concursos, aritmética de horarios y tuberías de aritmética modular.
Qué significa una combinación lineal y cuándo un objetivo es alcanzable
Dados enteros a y b, el conjunto de todas las combinaciones lineales enteras a por x más b por y es un objeto fundamental de la teoría elemental de números. El algoritmo de Euclides muestra que este conjunto coincide con el de los múltiplos de g, donde g es el máximo común divisor de a y b. De forma equivalente, la ecuación diofántica lineal a por x más b por y igual a c tiene soluciones enteras si y solo si g divide a c.
Cuando existe una solución, existen infinitas: si (x0, y0) es una solución particular, la familia general es x igual a x0 más (b entre g) por t e y igual a y0 menos (a entre g) por t para todo parámetro entero t. El paso constructivo que produce una solución particular es el algoritmo de Euclides extendido: mientras calcula g, rastrea cómo cada resto se escribe como combinación de los a y b originales y, al terminar, entrega coeficientes de Bézout para el propio g.
Multiplicar esos coeficientes por la escala entera c entre g produce una solución para el objetivo c. Esta calculadora empaqueta ese flujo completo: devuelve el mcd, un indicador booleano possible, un par particular (x, y) cuando el objetivo es alcanzable, una verificación numérica igual a a por x más b por y, una cadena de ecuación legible y cadenas de forma general para la familia paramétrica.
Cuando g no divide a c, la respuesta sigue siendo exitosa pero fija possible en false y explica el obstáculo, en el lenguaje de aula de que la ecuación no tiene solución entera, en lugar de fingir que el cliente envió datos inválidos.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
El par a igual a cero y b igual a cero también se rechaza, porque una combinación lineal de dos ceros no es un conjunto generador significativo para un objetivo. En una instancia bien formada pero irresoluble, possible es false, se omiten x e y, y reason indica que el mcd no divide al objetivo. Ejemplo: a igual a quince, b igual a veinticinco, c igual a diez produce mcd cinco, possible true y un par válido x igual a cuatro e y igual a menos dos.
Ejemplo de imposibilidad: a igual a cuatro, b igual a seis, c igual a cinco produce mcd dos y possible false porque dos no divide a cinco. Combine la respuesta con su propio generador de pasos si necesita todas las soluciones enteras; este extremo devuelve una solución particular más la forma general, no una enumeración infinita.
Dónde una calculadora de combinación lineal aporta valor real
La programación de concursos y el entrenamiento olímpico piden a menudo soluciones enteras de a por x más b por y igual a c; un oráculo determinista que certifica la resolubilidad vía el test del mcd y devuelve coeficientes reduce el tiempo de depuración en errores de escala por uno. Los cuadernos de ingeniería usan combinaciones de dos coeficientes al conciliar horarios periódicos, denominaciones monedas o conteos de dientes de engranaje que deben alcanzar un total exacto.
Las demostraciones de criptografía y aritmética modular suelen partir del mismo paso de Euclides extendido antes de especializarse en inversos cuando el mcd es uno. La validación fallida no consume saldo.
Qué puede hacer con ella
Comprobación de ejercicios diofánticos lineales
Envíe a, b y el objetivo c para verificar si existen enteros x, y con a·x + b·y = c y obtener una solución particular más la forma paramétrica general.
Aritmética de horarios y denominaciones
Decida si dos tamaños de paso pueden alcanzar un total exacto (turnos, monedas, dientes de engranaje) con la regla de divisibilidad del mcd y coeficientes explícitos.
Preguntas frecuentes
¿Cómo expreso un objetivo como combinación lineal de dos números?
Envíe enteros a, b y el objetivo c. Si g divide a c devuelve enteros x, y con a·x + b·y = c; en caso contrario possible es false.
¿Cuándo no hay solución entera?
Cuando gcd(a,b) no divide a c. La respuesta tiene éxito con possible en false y una cadena reason; es una ausencia de solución matemática, no un error de validación del cliente.
¿Los coeficientes son únicos?
No. Si (x0,y0) funciona, también lo hace x0+(b/g)·t e y0−(a/g)·t para todo entero t.
¿Qué ocurre si a y b son ambos cero?
Una combinación lineal de dos ceros no es un conjunto generador bien definido para un valor objetivo.
¿Cómo compruebo los coeficientes obtenidos?
Multiplique cada número por su coeficiente y sume los resultados. Para 15 y 25 con objetivo 10, el par 4 y −2 da 15 × 4 + 25 × (−2), que es 10, así que la combinación es correcta.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/algebra/linear-combination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":15,"b":25,"c":10}'const res = await fetch("https://api.kit.forhosting.com/algebra/linear-combination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 15,
"b": 25,
"c": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/linear-combination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 15,
"b": 25,
"c": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/linear-combination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":15,"b":25,"c":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":15,"b":25,"c":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/linear-combination", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"a": 15,
"b": 25,
"c": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.linear_combination",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Envíe por POST un cuerpo JSON con tres enteros obligatorios: a y b, los coeficientes de la combinación, y c, el valor objetivo que desea expresar. Se aceptan los alias first o m para a, second o n para b, y target o rhs para c, pensados para clientes de formularios. Cada campo puede llegar como número JSON, cadena de dígitos con signo opcional o bigint dentro del máximo absoluto de enteros seguros de la plataforma; los decimales, cadenas vacías, campos ausentes y valores fuera de ese rango fallan con invalid_input nombrando el campo y no se facturan. En una instancia resoluble el cuerpo incluye a, b y c ecoados; el mcd no negativo; possible en true; enteros x e y; check igual a la combinación reconstruida; equation como quince por cuatro más veinticinco por menos dos igual a diez; cadenas general_x y general_y que exponen el parámetro libre t; y una fórmula breve que reafirma el criterio de divisibilidad.
Dónde una calculadora de combinación lineal aporta valor real
Los cursos de álgebra y teoría de números asignan ejercicios constructivos de Bézout y ecuaciones diofánticas lineales; tutores y complementos LMS necesitan un contrato JSON estable que distinga entrada inválida de un caso genuino sin solución, para que los correctores no den puntos gratis por respuestas vacías. Como la implementación es parse de nivel A puro, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente.
Casos de integración
Oráculos para concursos y programación
Automatice pruebas de resolubilidad y recuperación de coeficientes en tareas diofánticas lineales de dos variables en jueces en línea, generadores y pruebas unitarias.
Preguntas técnicas
¿Cuánto cuesta la calculadora de combinación lineal?
La herramienta en el navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.