Калькулятор модульного піднесення до степеня
Швидко та точно обчисліть (base^exponent) mod m за допомогою бінарного піднесення до степеня зведенням у квадрат.
Computed with exponentiation by squaring
Як працює цей калькулятор?
Модульне піднесення до степеня знаходить (base^exponent) mod m. Замість прямого обчислення величезного степеня воно використовує бінарне піднесення до степеня зведенням у квадрат: зводить основу в квадрат і вдвічі зменшує показник на кожному кроці, множачи на результат при встановлених бітах і зводячи mod m протягом усього процесу. Це займає приблизно log2(exponent) множень і залишається точним із великими цілими числами.
Формула
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).
Також відомий як
TG we-Calculate Editorial Team. (2026). Калькулятор модульного піднесення до степеня [Online calculator]. TG we-Calculate. https://we-calculate.com/uk/calculator/modular-exponentiation-calculator
TG we-Calculate Editorial Team. "Калькулятор модульного піднесення до степеня." TG we-Calculate. 2026. https://we-calculate.com/uk/calculator/modular-exponentiation-calculator.
TG we-Calculate Editorial Team, "Калькулятор модульного піднесення до степеня," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/uk/calculator/modular-exponentiation-calculator
@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} }
Чи допоміг вам цей калькулятор?
