Advanced

Калькулятор модульного піднесення до степеня

Швидко та точно обчисліть (base^exponent) mod m за допомогою бінарного піднесення до степеня зведенням у квадрат.
Integer base
Non-negative integer
Positive integer
Result: (base^exponent) mod m
9

Computed with exponentiation by squaring

Основа
7
Показник степеня
256
Modulus
13
Result
9
01.63.34.96.58.19.811.413Result lands within [0, m)
Результати є приблизними оцінками лише для загального ознайомлення та не є професійною порадою — завжди самостійно перевіряйте важливі результати, перш ніж покладатися на них. Прочитати повне застереження.
Швидка відповідь

Як працює цей калькулятор?

Модульне піднесення до степеня знаходить (base^exponent) mod m. Замість прямого обчислення величезного степеня воно використовує бінарне піднесення до степеня зведенням у квадрат: зводить основу в квадрат і вдвічі зменшує показник на кожному кроці, множачи на результат при встановлених бітах і зводячи mod m протягом усього процесу. Це займає приблизно log2(exponent) множень і залишається точним із великими цілими числами.

Формула
result = (base^exponent) mod m, через зведення у квадрат: while e > 0, if e is odd result = result·b mod m, then b = b·b mod m, e = e >> 1
How this is calculated

Введіть три цілі числа: основу b, невід'ємний показник e і додатній модуль m. Калькулятор повертає остачу від ділення b у степені e на m. Наївне обчислення b^e спочатку призвело б до переповнення для великих показників, тому цей інструмент використовує піднесення до степеня зведенням у квадрат (також зване бінарним піднесенням до степеня).

Алгоритм починає з result = 1 і зводить основу за модулем m. Потім він проходить по бітах показника від молодшого до старшого: коли поточний біт дорівнює 1, він множить поточний результат на поточну основу (mod m), і на кожному кроці зводить основу в квадрат (mod m) та зсуває показник на один біт праворуч. Оскільки кожний проміжний добуток зводиться за модулем m, числа залишаються малими, а обсяг роботи пропорційний log2(e) множень, а не e. Усі арифметичні дії виконуються з JavaScript BigInt, тому результати точні незалежно від розміру.

Передумови та крайні випадки: показник повинен бути цілим числом e >= 0, а модуль — додатнім цілим числом m > 0 (mod 0 невизначено). Основа може бути від'ємною; вона спочатку нормалізується до діапазону 0..m-1 за допомогою ((b mod m) + m) mod m, тому повернута остача завжди невід'ємна. Коли e = 0, результат дорівнює 1 mod m. Коли m = 1, результат завжди дорівнює 0.

Поширені запитання

Для великих показників b^e астрономічно великий і повільний або неможливий для зберігання. Зведення за модулем m при кожному множенні тримає кожне значення нижче m і завершується приблизно за log2(e) кроків.

Так. Основа нормалізується до 0..m-1 перед циклом за допомогою ((b mod m) + m) mod m, тому від'ємна основа все одно дає правильну невід'ємну остачу.

За угодою b^0 = 1, тому результат дорівнює 1 mod m (що є 0, коли m = 1).

Також відомий як

піднесення до степеня за модулем
степінь за модулем
a в степені b mod m
швидке піднесення до степеня
modpow
modular exponentiation

APA

TG we-Calculate Editorial Team. (2026). Калькулятор модульного піднесення до степеня [Online calculator]. TG we-Calculate. https://we-calculate.com/uk/calculator/modular-exponentiation-calculator

Chicago

TG we-Calculate Editorial Team. "Калькулятор модульного піднесення до степеня." TG we-Calculate. 2026. https://we-calculate.com/uk/calculator/modular-exponentiation-calculator.

IEEE

TG we-Calculate Editorial Team, "Калькулятор модульного піднесення до степеня," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/uk/calculator/modular-exponentiation-calculator

BibTeX

@misc{wecalculate_modular_exponentiation_calculator, title = {Калькулятор модульного піднесення до степеня}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/uk/calculator/modular-exponentiation-calculator}}, year = {2026}, note = {TG we-Calculate} }

Чи допоміг вам цей калькулятор?

Пов'язані калькулятори