Divisione modulare
Divida in aritmetica modulare: 8 diviso 3 modulo 11 dà 10, perché l'inverso di 3 è 4 e 3 per 10 lascia resto 8. Ottiene anche l'inverso, il MCD e un valore di controllo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 8
- B
- 3
- N
- 11
- A modulo
- 8
- B modulo
- 3
- Inversa
- 4
- Quoziente
- 10
La divisione modulare cerca un residuo q tale che b per q sia congruente ad a modulo n. Nell'aritmetica ordinaria Lei divide semplicemente; in aritmetica modulare la divisione è moltiplicazione per l'inverso modulare del divisore. Tale inverso esiste solo quando b e n sono coprimi. Laboratori di crittografia, programmazione competitiva, compiti sui campi finiti ed esercizi sulle congruenze lineari necessitano di questa operazione, eppure molti linguaggi espongono solo un GCD o un inverso modulare nudo e lasciano a Lei il passo di moltiplicazione. Questa calcolatrice accetta gli interi a, b e il modulo n, inverte b modulo n con l'algoritmo di Euclide esteso quando possibile, moltiplica per a e restituisce l'unico quoziente non negativo tra zero e n meno uno, insieme all'inverso, al gcd e a un prodotto di verifica così che Lei possa controllare il risultato senza ridirivare i passaggi.
Cosa significa la divisione modulare e quando è definita
Negli interi ogni numero non nullo ha un reciproco nei razionali, quindi la divisione è sempre definita lontano dallo zero. Modulo n il quadro è più rigoroso: i residui formano un anello e solo le unità—elementi con inverso moltiplicativo—possono fungere da divisori legali. Si dice che q è un quoziente modulare di a diviso per b modulo n quando b per q lascia lo stesso resto di a riducendo entrambi i prodotti modulo n.
In modo equivalente, q è congruente ad a per l'inverso di b modulo n. L'inverso di b esiste se e solo se il gcd di b e n è uno; altrimenti ogni multiplo di b condivide un fattore con n e non può raggiungere tutte le classi di residuo, quindi nessun q unico funziona per un a arbitrario.
Ingegneri e studenti incontrano questa barriera quando dividono in un modulo composto che non è un campo primo, quando cancellano un coefficiente in una congruenza lineare o quando annullano una moltiplicazione modulare in un passo di hash o cifra. Si noti che a stesso non deve essere coprimo con n; solo il divisore b deve essere un'unità. Questa asimmetria è facile da dimenticare se si ricorda solo il caso speciale dell'inverso modulare con a uguale a uno.
Uso pratico, limiti, prezzi e consegna
Usi lo strumento del browser quando desidera un quoziente modulare rapido leggendo una nota di teoria dei numeri, controllando un compito della forma b x congruente ad a mod n, o depurando una pipeline modulare che già moltiplica per inversi a mano. Gli input accettati sono interi a e b con valore assoluto al massimo un trilione e moduli n da due a un trilione. I risultati sono deterministici: lo stesso triplo produce sempre gli stessi campi quotient, inverse e check.
Se Le serve solo l'inverso di b senza moltiplicare per a, preferisca la capacità dedicata di inverso modulare; questa pagina copre l'intento completo di divisione che si cerca come divisione modulare o a diviso b mod n.
Casi d'uso
Laboratori di critto e campi finiti
Docenti e studenti possono dividere elementi di campo modulo un primo, o ispezionare il gcd quando un modulo composto di esempio rende il divisore non invertibile.
Correttori di compiti e congruenze lineari
Valutatori automatici possono verificare soluzioni di b x ≡ a (mod n) confrontando il quoziente restituito e rifiutare i casi in cui non esiste una classe di residuo unica.
Domande frequenti
Cosa succede se b non è invertibile modulo n?
Il messaggio include gcd(b, n) così Lei sa perché la divisione modulare non è definita. La validazione fallita non viene addebitata.
Come viene calcolato il quoziente?
L'algoritmo di Euclide esteso trova b⁻¹ mod n quando gcd(b, n) = 1; la calcolatrice moltiplica poi tale inverso per a modulo n con aritmetica intera esatta.
La calcolatrice di divisione modulare è gratuita?
Lo strumento del browser gira gratis sul Suo dispositivo.
Quali intervalli di a, b e n sono accettati?
n deve essere un intero da 2 a 1,000,000,000,000. a e b devono essere interi il cui valore assoluto è al massimo tale limite. I valori fuori da tali limiti vengono rifiutati.
Quanto fa 8 diviso 3 modulo 11?
Il risultato è 10. L'inverso di 3 modulo 11 è 4 e moltiplicando 8 per questo inverso si ottiene il quoziente 10. Come controllo, 3 per 10 lascia resto 8 nella divisione per 11.
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/modular-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":3,"n":11}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 8,
"b": 3,
"n": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 8,
"b": 3,
"n": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":8,"b":3,"n":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":8,"b":3,"n":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-division", 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": 8,
"b": 3,
"n": 11
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_division",
"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.
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
Cosa significa la divisione modulare e quando è definita
Restituire un errore invalid_input esplicito quando b non è invertibile è più utile di un residuo silenzioso e sbagliato: il client impara che la divisione non è definita per quella coppia e può ramificare sul gcd segnalato invece di fidarsi di una libreria a metà.
Come questa calcolatrice inverte b e moltiplica per a
Chiami la capacità con i campi interi a, b e n, dove n è almeno due. L'implementazione riduce prima a e b in residui non negativi a_mod e b_mod nell'intervallo da zero a n meno uno, poi esegue l'algoritmo di Euclide esteso su b_mod e n. Ogni passo registra il quoziente intero e aggiorna i coefficienti di Bézout in modo che al termine il coefficiente di b_mod moltiplica b_mod più un coefficiente di n uguagli il gcd. Se quel gcd non è uno, la richiesta fallisce con invalid_input e un messaggio che nomina b, n e il gcd; nulla viene addebitato. Se il gcd è uno, il coefficiente di b_mod è ridotto in zero fino a n meno uno e salvato come inverse. Il prodotto modulare di a_mod e inverse è poi ottenuto con aritmetica BigInt esatta così che residui grandi restino corretti fino al limite pubblicato, e il prodotto è restituito come quotient. La risposta ripete anche a, b, n, a_mod, b_mod, gcd e check uguale a b_mod per quotient modulo n, che deve coincidere con a_mod quando la chiamata ha successo. I valori assoluti di a e b, e il modulo n, sono limitati a un trilione affinché ogni intermedio resti in un regime di interi sicuri del Worker.
Uso pratico, limiti, prezzi e consegna
Usi l'API quando uno script, un correttore o una piattaforma educativa ha bisogno di molte divisioni senza incorporare una routine di GCD esteso e un passo multiply-mod accurato. Ogni richiesta riuscita è un elemento fatturabile a $0.002; i fallimenti di validazione e i divisori non invertibili non consumano saldo. Colleghi l'endpoint ad aiuti per gare, demo di campi finiti, sandbox didattiche RSA che richiedono più di inversi nudi, o qualsiasi pipeline intera che preferisca aritmetica esatta a euristiche in virgola mobile. Poiché l'unità è un singolo elemento e il motore è parse puro, la latenza resta bassa e il canale web gratuito rispecchia l'API a pagamento senza un secondo percorso di codice che possa divergere.
Casi di integrazione
Programmazione competitiva e aritmetica modulare
I programmatori competitivi possono calcolare a/b mod n sotto moduli primi o composti e intercettare divisori non invertibili via invalid_input invece di frammenti ad hoc di GCD esteso.
Domande tecniche
Come si calcola la divisione modulare a ÷ b mod n?
Invii JSON con i campi interi a, b e n (n ≥ 2) a numth.modular_division. In caso di successo la risposta restituisce quotient in 0..n−1, più l'inverso di b, a_mod, b_mod, gcd e check uguale a a_mod.