主题
Search

逐次平方方法


逐次平方方法是一种在有限域 GF(p) 中计算 a^b 的算法。第一步是将 b 分解为 2 的逐次幂,

 b=sum_(i)delta_i2^i,
(1)

其中 delta_i in {0,1},这给出了以 2 为基数的 ba^b 然后可以表示为

a^b (mod p)=product_(i)(a^(delta_i2^i)) (mod p)
(2)
=product_(i)(a^(delta_i2^i) (mod p)) (mod p).
(3)

该项可以通过以下逐次步骤计算:

a^1 (mod p)=alpha_1
(4)
a^2 (mod p)=alpha_1^2 (mod p)=alpha_2
(5)
a^4 (mod p)=alpha_2^2 (mod p)=alpha_4|
(6)
a^i (mod p)=alpha_(i/2)^2 (mod p)=alpha_i.
(7)

例如,要在有限域 GF(76) 中计算 28^(27),首先将 28^(27) 分解为 28^(16)·28^8·28^2·28^1,然后按照上述步骤

28=28^1 (mod 76)
(8)
24=28^2 (mod 76)
(9)
44=24^2=28^4 (mod 76)
(10)
36=44^2=28^8 (mod 76)
(11)
4=36^2=28^(16) (mod 76).
(12)

由此,最终答案可以计算为

 20=(4·36·24·28)=28^(27) (mod 76).
(13)

逐次平方方法在 Wolfram 语言中实现为PowerMod[a, b, n].


此条目的部分内容由 Pascal Perez 贡献

使用 Wolfram|Alpha 探索

参考文献

Bressoud, D. 和 Wagon, S. 计算数论。 纽约:Key College Publishing,pp. 30-40, 2000。

在 Wolfram|Alpha 中引用

逐次平方方法

请引用为

Perez, PascalWeisstein, Eric W. "逐次平方方法。" 来自 MathWorld--Wolfram Web 资源。 https://mathworld.net.cn/SuccessiveSquareMethod.html

主题分类