Combinaison linéaire de deux nombres : x, y pour ax+by=c
Trouvez les entiers qui, multipliés par 15 et 25, donnent 10 : 15 × 4 + 25 × (−2) = 10, ce qui est possible car leur PGCD, 5, divise 10. Sinon, l'absence de solution vous est signalée. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- A
- 15
- B
- 25
- C
- 10
- Gcd
- 5
- X
- 4
- Y
- -2
- Vérification
- 10
Une combinaison linéaire de deux entiers a et b est tout entier qui peut s’écrire comme a fois x plus b fois y pour certains entiers x et y. Toute cible n’est pas atteignable : le théorème de Bézout affirme que l’ensemble atteignable est exactement celui des multiples du plus grand commun diviseur de a et b. Ce calculateur de combinaison linéaire de deux nombres accepte les coefficients a et b plus une cible c, calcule ce pgcd avec l’algorithme d’Euclide étendu et renvoie une paire particulière de coefficients qui réalise la cible, ou signale qu’aucune solution entière n’existe. Les étudiants l’utilisent pour vérifier des exercices diophantiens ; les développeurs réutilisent le même contrat pur dans les concours, l’arithmétique d’horaires et les pipelines d’arithmétique modulaire.
Ce qu’est une combinaison linéaire et quand une cible est atteignable
Étant donnés des entiers a et b, l’ensemble de toutes les combinaisons linéaires entières a fois x plus b fois y est un objet fondamental de la théorie élémentaire des nombres. L’algorithme d’Euclide montre que cet ensemble coïncide avec celui des multiples de g, où g est le plus grand commun diviseur de a et b. De façon équivalente, l’équation diophantienne linéaire a fois x plus b fois y égale c admet des solutions entières si et seulement si g divise c.
Lorsqu’une solution existe, il en existe une infinité : si (x0, y0) est une solution particulière, la famille générale est x égal à x0 plus (b sur g) fois t et y égal à y0 moins (a sur g) fois t pour tout paramètre entier t. L’étape constructive qui produit une solution particulière est l’algorithme d’Euclide étendu : tout en calculant g, il suit comment chaque reste s’écrit comme combinaison des a et b d’origine et, à la terminaison, fournit des coefficients de Bézout pour g lui-même.
Multiplier ces coefficients par l’échelle entière c sur g produit une solution pour la cible c. Ce calculateur regroupe ce pipeline complet : il renvoie le pgcd, un indicateur booléen possible, une paire particulière (x, y) lorsque la cible est atteignable, une vérification numérique égale à a fois x plus b fois y, une chaîne d’équation lisible et des chaînes de forme générale pour la famille paramétrique.
Lorsque g ne divise pas c, la réponse reste un succès mais fixe possible à false et explique l’obstacle, dans le langage de classe selon lequel l’équation n’a pas de solution entière, plutôt que de prétendre que le client a envoyé des données invalides.
Contrat d’entrée, forme de la réponse et comportement d’erreur
La paire a égal à zéro et b égal à zéro est aussi rejetée, car une combinaison linéaire de deux zéros n’est pas un ensemble générateur significatif pour une cible. Sur une instance bien formée mais irrésoluble, possible est false, x et y sont omis, et reason indique que le pgcd ne divise pas la cible. Exemple : a égal à quinze, b égal à vingt-cinq, c égal à dix donne pgcd cinq, possible true et une paire valide x égal à quatre et y égal à moins deux.
Exemple d’impossibilité : a égal à quatre, b égal à six, c égal à cinq donne pgcd deux et possible false car deux ne divise pas cinq. Associez la réponse à votre propre générateur d’étapes si vous avez besoin de toutes les solutions entières ; ce point d’accès renvoie une solution particulière plus la forme générale, pas une énumération infinie.
Où un calculateur de combinaison linéaire apporte une vraie valeur
La programmation de concours et l’entraînement olympique demandent souvent des solutions entières de a fois x plus b fois y égale c ; un oracle déterministe qui certifie la résolubilité via le test du pgcd et renvoie des coefficients réduit le temps de débogage sur les erreurs d’échelle d’une unité. Les carnets d’ingénierie utilisent des combinaisons à deux coefficients pour concilier horaires périodiques, dénominations monétaires ou nombres de dents d’engrenage qui doivent atteindre un total exact.
Les démonstrations de cryptographie et d’arithmétique modulaire partent souvent de la même étape d’Euclide étendu avant de se spécialiser en inverses lorsque le pgcd vaut un. Une validation échouée ne consomme pas le solde.
Cas d’usage
Vérification d’exercices diophantiens linéaires
Envoyez a, b et la cible c pour vérifier s’il existe des entiers x, y avec a·x + b·y = c et obtenir une solution particulière plus la forme paramétrique générale.
Oracles pour concours et programmation
Automatisez les tests de résolubilité et la récupération de coefficients pour des tâches diophantiennes linéaires à deux variables dans les juges en ligne, générateurs et tests unitaires.
Arithmétique d’horaires et de dénominations
Décidez si deux tailles de pas peuvent atteindre un total exact (quarts, pièces, dents d’engrenage) avec la règle de divisibilité du pgcd et des coefficients explicites.
Questions fréquentes
Comment exprimer une cible comme combinaison linéaire de deux nombres ?
Envoyez les entiers a, b et la cible c. Si g divise c, elle renvoie des entiers x, y avec a·x + b·y = c ; sinon possible est false.
Quand n’y a-t-il pas de solution entière ?
Lorsque gcd(a,b) ne divise pas c. La réponse réussit avec possible à false et une chaîne reason ; c’est une absence de solution mathématique, pas une erreur de validation client.
Les coefficients sont-ils uniques ?
Non. Si (x0,y0) fonctionne, x0+(b/g)·t et y0−(a/g)·t aussi pour tout entier t.
Que se passe-t-il si a et b sont tous deux nuls ?
Une combinaison linéaire de deux zéros n’est pas un ensemble générateur bien défini pour une valeur cible.
Comment vérifier les coefficients obtenus ?
Multipliez chaque nombre par son coefficient et additionnez les résultats. Pour 15 et 25 avec la cible 10, le couple 4 et −2 donne 15 × 4 + 25 × (−2), soit 10 : la combinaison est donc correcte.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"a": 15,
"b": 25,
"c": 10
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.linear_combination",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Contrat d’entrée, forme de la réponse et comportement d’erreur
Envoyez en POST un corps JSON avec trois entiers obligatoires : a et b, les coefficients de la combinaison, et c, la valeur cible que vous souhaitez exprimer. Les alias first ou m pour a, second ou n pour b, et target ou rhs pour c sont acceptés pour les clients de formulaires. Chaque champ peut arriver comme nombre JSON, chaîne de chiffres avec signe optionnel ou bigint dans le maximum absolu d’entiers sûrs de la plateforme ; décimales, chaînes vides, champs manquants et valeurs hors de cette plage échouent avec invalid_input en nommant le champ et ne sont pas facturés. Sur une instance résoluble le corps inclut a, b et c renvoyés en écho ; le pgcd non négatif ; possible à true ; les entiers x et y ; check égal à la combinaison reconstruite ; equation telle que quinze fois quatre plus vingt-cinq fois moins deux égale dix ; les chaînes general_x et general_y qui exposent le paramètre libre t ; et une courte formule rappelant le critère de divisibilité.
Où un calculateur de combinaison linéaire apporte une vraie valeur
Les cours d’algèbre et de théorie des nombres assignent des exercices constructifs de Bézout et des équations diophantiennes linéaires ; tuteurs et plugins LMS ont besoin d’un contrat JSON stable qui distingue l’entrée invalide d’un vrai cas sans solution, afin que les correcteurs n’accordent pas de points gratuits pour des réponses vides. Comme l’implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Questions techniques
Combien coûte le calculateur de combinaison linéaire ?
L’outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; l’entrée invalide n’est pas facturée.