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. Вместо да изчислява огромната степен директно, то използва двоично степенуване чрез повдигане на квадрат: повдига основата на квадрат и наполовинява показателя на всяка стъпка, умножавайки в резултата при установените битове, намалявайки по модул m навсякъде. Това се изпълнява за около log2(exponent) умножения и остава точно с големи цели числа.

Формула
result = (base^exponent) mod m, via squaring: 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).

Известен също като

модулно степенуване
степен по модул
modpow
a на степен b по модул m
бързо степенуване
modular exponentiation
степенуване модул

APA

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

Chicago

TG we-Calculate Editorial Team. "Калкулатор за модулно степенуване." TG we-Calculate. 2026. https://we-calculate.com/bg/calculator/modular-exponentiation-calculator.

IEEE

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

BibTeX

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

Помогна ли ви този калкулатор?

Свързани калкулатори