模幂计算器
使用二进制平方取幂法快速精确地计算 (base^exponent) mod m。
Computed with exponentiation by squaring
这个计算器是如何工作的?
模幂运算计算 (base^exponent) mod m。它不是直接计算巨大的幂,而是使用二进制平方取幂法:每步对底数平方并将指数减半,在遇到置位比特时乘入结果,全程对 m 取余。运算约需 log2(exponent) 次乘法,并用大整数保持精确。
公式
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)。
也称为
TG we-Calculate Editorial Team. (2026). 模幂计算器 [Online calculator]. TG we-Calculate. https://we-calculate.com/zh/calculator/modular-exponentiation-calculator
TG we-Calculate Editorial Team. "模幂计算器." TG we-Calculate. 2026. https://we-calculate.com/zh/calculator/modular-exponentiation-calculator.
TG we-Calculate Editorial Team, "模幂计算器," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/zh/calculator/modular-exponentiation-calculator
@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} }
这个计算器对您有帮助吗?
