ForHosting KIT · Matematica

Esponenziazione modulare veloce

Ottenga il resto esatto di una potenza enorme senza traboccamenti: 2 elevato alla 10 modulo 1000 fa 24, e 3 elevato alla 5 modulo 13 fa 9. Base, esponente e modulo possono avere fino a 2048 cifre ciascuno. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Base
2
Esponente
10
Modulo
1000
Ottiene
Risultato
24

L'esponenziazione modulare veloce risponde a una domanda precisa: qual è il resto non negativo esatto quando una base intera viene elevata a un esponente intero e ridotta modulo m? Quel residuo sostiene demo didattiche in stile RSA, bozze di scambio Diffie–Hellman, problemi di gare di programmazione e qualsiasi script di produzione che debba potenziare interi grandi senza far traboccare tipi a larghezza fissa né perdere precisione oltre 2^53.

Cosa calcola l'esponenziazione modulare veloce

Dati interi base, exponent e modulo m, l'esponenziazione modulare restituisce l'unico resto r nell'intervallo chiuso da zero a m meno uno tale che la base elevata all'esponente sia congruente a r modulo m. In simboli, r ≡ base^exponent (mod m). Un approccio ingenui moltiplica la base per se stessa exponent volte e solo poi riduce, gonfiando i valori intermedi ben oltre la virgola mobile o gli interi a larghezza fissa e fallendo in silenzio quando si perde precisione.

L'esponenziazione modulare veloce riduce dopo ogni moltiplicazione e eleva al quadrato la base corrente scorrendo i bit dell'esponente dal meno al più significativo, così il lavoro totale scala con la lunghezza in bit dell'esponente e non con la sua magnitudine decimale. Quando m vale uno, ogni intero è congruente a zero, quindi il risultato è sempre zero. Quando l'esponente è zero, il risultato è uno per qualsiasi base purché m sia maggiore di uno, secondo la convenzione del prodotto vuoto della teoria dei numeri e delle librerie di programmazione.

Le basi negative vengono prima ridotte nel sistema di residui non negativi modulo m affinché la catena di moltiplicazioni non mescoli resti con segno. Gli esponenti negativi sono rifiutati perché richiedono inversi modulari che possono non esistere quando base e m non sono coprimi, e quel passo di inverso è fuori dall'ambito di questo calcolatore.

Limiti, prestazioni e dove lo usano gli sviluppatori

L'esponenziazione modulare binaria esegue un numero costante di moltiplicazioni modulari per bit dell'esponente, quindi raddoppiare l'esponente raddoppia all'incirca il lavoro, mentre un modulo più grande rincara ogni prodotto con la lunghezza in cifre. I docenti lo usano per verificare a mano a^b mod m prima che gli studenti consegnino le dimostrazioni.

Gli sviluppatori lo collegano a test di proprietà che affermano che i protocolli restano nelle classi di residui, a giochi o classifiche che ripiegano contatori grandi modulo un primo, e a pipeline di scripting che non devono reimplementare quadrato e moltiplicazione in ogni linguaggio.

Verificare risposte di gara e compiti a^b mod m

Studenti e tutor possono controllare potenze modulari senza moltiplicare a mano intermediari enormi né fidarsi di una calcolatrice che perde precisione in silenzio oltre 2^53.

Avviare demo crypto e test unitari di protocollo

Script che necessitano di un passo deterministico base^exp mod m per RSA giocattolo, Diffie–Hellman o asserzioni di classe di residui possono chiamare questo invece di portare la propria potenza BigInt.

Ripiegare contatori grandi in un intervallo di residui fisso

Giochi, sistemi di ranking e aiuti di sharding che elevano un intero e poi riducono modulo m ottengono un resto esatto senza sorprese di arrotondamento in virgola mobile.

Che cos'è l'esponenziazione modulare?

Consiste nell'elevare la base a un esponente e prendere il resto modulo m, scritto base^exponent mod m. Questo calcolatore restituisce quel resto non negativo come result.

Perché un esponente negativo viene rifiutato?

Gli esponenti negativi significano potenze reciproche e richiedono inversi modulari, che possono non esistere quando base e m non sono coprimi.

Come funziona il calcolatore di esponenziazione modulare veloce?

Usa quadrato e moltiplicazione binari su BigInt: per ogni bit dell'esponente eleva al quadrato la base corrente modulo m e moltiplica nel risultato quando il bit è attivo.

Il calcolatore di esponenziazione modulare veloce è gratis?

Lo strumento nel browser è gratis e gira in locale.

Cosa succede se il modulo è 1 o l'esponente è 0?

Con modulo 1 ogni numero lascia resto 0, quindi il risultato è sempre 0. Con esponente 0 il risultato è 1 per qualsiasi base, purché il modulo sia maggiore di 1: 7 elevato alla 0 modulo 5 dà 1.

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.

POSThttps://api.kit.forhosting.com/dev/modular-exponentiation

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev/modular-exponentiation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"base":"2","exponent":"10","modulus":"1000"}'
{
  "base": "2",
  "exponent": "10",
  "modulus": "1000"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.modular_exponentiation",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Questo calcolatore di esponenziazione modulare veloce esegue l'algoritmo binario di quadrato e moltiplicazione su BigInt così che i prodotti intermedi restino ridotti a ogni passo, la risposta sia deterministica, e Lei possa provare lo stesso nucleo puro gratis nel browser prima di chiamare l'API, che addebita solo le attività riuscite.

Cosa calcola l'esponenziazione modulare veloce

Il modulo deve essere almeno uno; moduli nulli o negativi non definiscono un resto non negativo standard e restituiscono invalid_input invece di inventare una risposta.

Come chiamare l'API e leggere il risultato

Invii un corpo JSON con tre campi obbligatori: base, exponent e modulus. Ciascuno può essere una stringa di intero decimale o un numero JSON; la forma stringa è preferita per valori oltre l'intervallo degli interi sicuri di JavaScript, perché sopra quella soglia non ogni intero è rappresentato esattamente. Sono accettati gli alias a per base, exp o e o power per exponent, e m o mod per modulus, così form e client scritti a mano condividono un solo contratto senza rinominare le chiavi. In caso di successo, la risposta riporta base, exponent e modulus come stringhe decimali normalizzate e aggiunge result come resto non negativo di base^exponent mod modulus. Controlli classici che Lei può eseguire subito: base 2, exponent 10, modulus 1000 dà result 24; base 3, exponent 5, modulus 13 dà 9; base 7, exponent 0, modulus 5 dà 1. Una validazione fallita—campi mancanti, non interi, frazioni, modulo inferiore a uno, esponente negativo o valore più lungo del limite di cifre pubblicato—restituisce invalid_input e non viene mai addebitata sul saldo prepagato. Il prezzo è un fisso $0.002 per richiesta riuscita sotto l'unità item.

Limiti, prestazioni e dove lo usano gli sviluppatori

Questa capacità limita base, exponent e modulus a 2048 cifre decimali—abbastanza per gare, compiti e molte demo a scala crittografica—e al tempo stesso abbastanza compatta da mantenere interattivo il BigInt puro del Worker senza uno stack multiprecisione pesante né un container. Se Le servono moduli da milioni di cifre, scomposizioni con il teorema cinese del resto o primitive crittografiche a tempo costante resistenti ai canali laterali, serve una libreria crittografica dedicata; questo strumento parse leggero è volutamente il calcolatore e il passo API condivisi per potenze modulari esatte nei flussi di sviluppo. Lo abbini a strumenti di fattorizzazione o inverso modulare quando il flusso richiede il kit modulare completo; questo endpoint risponde solo alla domanda di potenziare e ridurre affinché l'intento di ricerca resti chiaro e la risposta minima e prevedibile.

Cosa succede se il modulo è minore di 1?

Il modulo deve essere almeno 1. Moduli nulli o negativi non definiscono il resto non negativo standard usato qui e restituiscono invalid_input.

Leggi la documentazione completa del KIT →