主題
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 貢獻

使用 探索

參考文獻

Bressoud, D. 和 Wagon, S. 計算數論。 紐約:Key College Publishing,pp. 30-40, 2000。

在 中引用

逐次平方方法

請引用為

Perez, PascalWeisstein, Eric W. "逐次平方方法。" 來自 Web 資源。 https://mathworld.tw/SuccessiveSquareMethod.html

主題分類