Euclide esteso: MCD e coefficienti di Bézout x, y
Per 240 e 46 il massimo comun divisore è 2, e 240 × (−9) + 46 × 47 = 2. Inserisca due interi per ottenere il loro divisore comune, i due coefficienti di Bézout e l'uguaglianza che lo dimostra. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Primo intero
- 240
- Secondo intero
- 46
- MCD
- 2
- X
- -9
- Y
- 47
- Controllo
- 2
L'algoritmo di Euclide esteso non si limita a riportare il massimo comune divisore di due interi: produce anche coefficienti di Bézout x e y tali che a per x più b per y uguaglia quel MCD. Quei coefficienti compaiono negli inversi modulari quando il MCD è uno, nelle dimostrazioni costruttive di equazioni diofantee lineari e nei compiti di crittografia che richiedono una combinazione esplicita anziché un resto nudo.
Dai resti ai coefficienti di Bézout
La divisione euclidea ordinaria sostituisce ripetutamente una coppia (a, b) con (b, a mod b) finché il resto è zero; l'ultimo resto non nullo è MCD(a, b). La forma estesa tiene traccia di come ogni resto si scrive come combinazione lineare intera degli input originali. A ogni passo il resto corrente uguaglia a per un coefficiente più b per un altro, e quando l'algoritmo si ferma quei coefficienti sono esattamente i numeri di Bézout del MCD.
Le presentazioni in aula usano spesso la sostituzione all'indietro dalla sequenza dei quozienti; il codice di produzione aggiorna in modo iterativo due coppie di coefficienti senza salvare una pila di resti. Entrambi gli approcci calcolano lo stesso oggetto matematico: interi x e y che soddisfano a*x + b*y = MCD(a, b). Il MCD è sempre restituito come intero non negativo, secondo la convenzione standard di librerie e testi di gara.
Cosa invia e cosa riceve
Anche la coppia zero e zero è rifiutata, perché MCD(0, 0) è indefinito e nessun coefficiente produce un'equazione significativa. In caso di successo la risposta include a e b normalizzati, MCD, x, y, un oggetto bezout annidato con gli stessi coefficienti, un controllo numerico uguale a a*x + b*y e una stringa di equazione come 240*(-9) + 46*(47) = 2.
Controlli tipici: per 240 e 46 il MCD è 2 e una soluzione valida è x uguale a meno nove con y uguale a quarantasette; per una coppia prima con MCD uno i coefficienti danno un inverso modulare di a modulo b dopo aver ridotto x. Casi limite con uno zero e un partner non nullo producono MCD uguale al valore assoluto dell'input non nullo e un pattern di coefficienti banale.
Dove i coefficienti di Bézout compaiono nel lavoro reale
I programmatori di gara risolvono ax + by = c calcolando prima il MCD e i coefficienti base, poi scalando e parametrizzando la soluzione generale quando il MCD divide c. Gli studenti di crittografia recuperano inversi modulari per esempi RSA giocattolo e cifrari affini quando MCD(a, m) è uno leggendo il coefficiente di a dopo la riduzione modulo m. I docenti assegnano dimostrazioni costruttive che due interi sono coprimi e necessitano di un oracolo deterministico che mostri la combinazione, non solo un bit di coprimalità.
Ingegneri di dati e sistemi a volte necessitano di combinazioni lineari esplicite riconciliando orari periodici o aritmetica di passo. Usi lo strumento del browser per controllare i compiti in fretta, poi automatizzi lo stesso contratto quando il Suo servizio necessita di controlli diofantei massivi. Se Le serve solo il MCD senza coefficienti, questa pagina risponde comunque a quell'esigenza insegnando il risultato costruttivo più forte.
Casi d'uso
Equazioni diofantee lineari
Ottenga una soluzione particolare (x, y) per a*x + b*y = MCD, poi scali e parametrizzi quando risolve a*x + b*y = c in gare o compiti.
Blocco base dell'inverso modulare
Quando MCD(a, m) = 1, riduca il coefficiente di Bézout di a modulo m per recuperare un inverso modulare per esercizi di crittografia e teoria dei numeri.
Domande frequenti
Cos'è l'algoritmo di Euclide esteso?
Calcola MCD(a, b) e interi x, y (coefficienti di Bézout) tali che a*x + b*y uguaglia quel MCD, tracciando combinazioni lineari attraverso i resti euclidei.
I coefficienti sono unici?
No. Se (x, y) funziona, vale anche (x + k*(b/g), y − k*(a/g)) per ogni intero k. Questo strumento restituisce una soluzione particolare dell'algoritmo iterativo.
Quale intervallo di interi è supportato?
Ciascuno di a e b deve essere un intero con valore assoluto al più 9007199254740991 (Number.MAX_SAFE_INTEGER).
Quanto costa?
Lo strumento del browser è gratis e gira in locale.
Come trovo i coefficienti di Bézout di 240 e 46?
Inserisca i due numeri. Il massimo comun divisore è 2 e i coefficienti sono −9 e 47, perché 240 × (−9) + 46 × 47 = 2. Il risultato riporta questa uguaglianza così può verificarla.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/numth/extended-euclidean \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":240,"b":46}'const res = await fetch("https://api.kit.forhosting.com/numth/extended-euclidean", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 240,
"b": 46
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/extended-euclidean",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 240,
"b": 46
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/extended-euclidean", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":240,"b":46}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":240,"b":46}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/extended-euclidean", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"a": 240,
"b": 46
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.extended_euclidean",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_abs | 9007199254740991 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Questa capacità prende due interi, rifiuta il caso indefinito in cui entrambi sono zero e restituisce un JSON stabile con MCD, x, y, una verifica e una stringa di equazione leggibile da incollare in appunti o test.
Dai resti ai coefficienti di Bézout
Questo endpoint implementa il percorso iterativo sui valori assoluti, poi reintroduce i segni così che input negativi soddisfino ancora l'identità.
Cosa invia e cosa riceve
Fornisca interi a e b (si accettano gli alias first o m per a, e second o n per b). Non interi, campi vuoti e valori fuori dal massimo assoluto di interi sicuri della piattaforma sono rifiutati con invalid_input e non addebitati.
Dove i coefficienti di Bézout compaiono nel lavoro reale
Poiché la capacità è un motore di parse puro, non c'è deriva di modello, dipendenza di rete né stato memorizzato: la stessa coppia produce sempre lo stesso JSON per una convenzione fissa di coefficienti. Il prezzo API è la base pubblicata di $0.002 per elemento riuscito; la convalida fallita non consuma saldo.
Casi di integrazione
Didattica e controlli automatici
Mostri agli studenti l'identità a*x + b*y = MCD con un campo equazione JSON stabile e colleghi lo stesso contratto a correttori o fixture CI.
Domande tecniche
Perché a e b entrambi zero sono rifiutati?
MCD(0, 0) è indefinito. Non c'è un massimo comune divisore positivo, quindi l'API restituisce invalid_input e non addebita.