Calcolatore di Esponenziazione Modulare
Calcola (base^esponente) mod m in modo rapido ed esatto usando l'esponenziazione binaria per quadrati.
Computed with exponentiation by squaring
Come funziona questo calcolatore?
L'esponenziazione modulare trova (base^esponente) mod m. Invece di calcolare direttamente l'enorme potenza, usa l'esponenziazione binaria per quadrati: eleva al quadrato la base e dimezza l'esponente a ogni passo, moltiplicando nel risultato sui bit impostati, riducendo mod m per tutto il processo. Questo viene eseguito in circa log2(esponente) moltiplicazioni e resta esatto con gli interi grandi.
Formula
How this is calculated
Inserisci tre interi: la base b, un esponente non negativo e, e un modulo positivo m. Il calcolatore restituisce il resto di b elevato a e diviso per m. Calcolare ingenuamente b^e prima andrebbe in overflow per esponenti grandi, quindi questo strumento usa l'esponenziazione per quadrati (chiamata anche esponenziazione binaria).
L'algoritmo inizia con risultato = 1 e riduce la base modulo m. Poi scorre i bit dell'esponente dal meno al più significativo: ogni volta che il bit corrente è 1 moltiplica il risultato corrente per la base corrente (mod m), e a ogni passo eleva al quadrato la base (mod m) e sposta l'esponente a destra di un bit. Poiché ogni prodotto intermedio è ridotto modulo m, i numeri restano piccoli e il lavoro è proporzionale a log2(e) moltiplicazioni anziché e. Tutta l'aritmetica è eseguita con BigInt di JavaScript così i risultati sono esatti indipendentemente dalla dimensione.
Ipotesi e casi limite: l'esponente deve essere un numero intero e >= 0 e il modulo deve essere un intero positivo m > 0 (mod 0 è indefinito). La base può essere negativa; viene prima normalizzata nell'intervallo 0..m-1 usando ((b mod m) + m) mod m, così il resto restituito è sempre non negativo. Quando e = 0 il risultato è 1 mod m. Quando m = 1 il risultato è sempre 0.
Domande frequenti
Per esponenti grandi b^e è astronomicamente grande e lento o impossibile da memorizzare. Ridurre modulo m a ogni moltiplicazione mantiene ogni valore sotto m e termina in circa log2(e) passi.
Sì. La base viene normalizzata in 0..m-1 prima del ciclo usando ((b mod m) + m) mod m, quindi una base negativa dà comunque un resto corretto non negativo.
Per convenzione b^0 = 1, quindi il risultato è 1 mod m (che è 0 quando m = 1).
Conosciuto anche come
TG we-Calculate Editorial Team. (2026). Calcolatore di Esponenziazione Modulare [Online calculator]. TG we-Calculate. https://we-calculate.com/it/calculator/modular-exponentiation-calculator
TG we-Calculate Editorial Team. "Calcolatore di Esponenziazione Modulare." TG we-Calculate. 2026. https://we-calculate.com/it/calculator/modular-exponentiation-calculator.
TG we-Calculate Editorial Team, "Calcolatore di Esponenziazione Modulare," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/it/calculator/modular-exponentiation-calculator
@misc{wecalculate_modular_exponentiation_calculator, title = {Calcolatore di Esponenziazione Modulare}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/it/calculator/modular-exponentiation-calculator}}, year = {2026}, note = {TG we-Calculate} }
Questo calcolatore ti è stato utile?
