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,通过平方法:当 e > 0 时,若 e 为奇数则 result = result·b mod m,然后 b = b·b mod m,e = e >> 1
How this is calculated

输入三个整数:底数 b、非负指数 e 和正模数 m。计算器返回 b 的 e 次幂除以 m 的余数。直接计算 b^e 在指数较大时会溢出,因此本工具使用平方取幂法(又称二进制取幂法)。

算法从 result = 1 开始,将底数对 m 取余。然后从最低有效位到最高有效位遍历指数的各位:当当前位为 1 时,将运行结果乘以当前底数(对 m 取余);每步将底数平方(对 m 取余)并将指数右移一位。由于每次中间积都对 m 取余,数值保持较小,计算量与 log2(e) 次乘法成正比,而非 e 次。所有运算均使用 JavaScript BigInt 完成,因此无论数值多大结果都精确。

假设与边界情况:指数必须为整数 e >= 0,模数必须为正整数 m > 0(mod 0 未定义)。底数可以为负数;它首先使用 ((b mod m) + m) mod m 归一化到 0..m-1 范围内,因此返回的余数始终为非负数。当 e = 0 时结果为 1 mod m。当 m = 1 时结果始终为 0。

常见问题

对于大指数,b^e 的数值极大,存储和计算十分缓慢甚至不可能。在每次乘法时对 m 取余可使每个值保持在 m 以下,且约需 log2(e) 步即可完成。

可以。底数在循环前使用 ((b mod m) + m) mod m 归一化到 0..m-1 范围内,因此负数底数仍能得到正确的非负余数。

按惯例 b^0 = 1,因此结果为 1 mod m(当 m = 1 时为 0)。

也称为

模幂运算
快速幂
幂取模
a的b次方modm
模幂计算
快速幂取模

APA

TG we-Calculate Editorial Team. (2026). 模幂计算器 [Online calculator]. TG we-Calculate. https://we-calculate.com/zh/calculator/modular-exponentiation-calculator

Chicago

TG we-Calculate Editorial Team. "模幂计算器." TG we-Calculate. 2026. https://we-calculate.com/zh/calculator/modular-exponentiation-calculator.

IEEE

TG we-Calculate Editorial Team, "模幂计算器," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/zh/calculator/modular-exponentiation-calculator

BibTeX

@misc{wecalculate_modular_exponentiation_calculator, title = {模幂计算器}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/zh/calculator/modular-exponentiation-calculator}}, year = {2026}, note = {TG we-Calculate} }

这个计算器对您有帮助吗?