1

所以关于扩展欧几里得算法,找到 , , 和 在方程 中的算法ab其中dam+bn=dm两个n正整数,d是它们的 GCD,并且ab是两个整数(不一定是正数)

所以我正在关注的书有以下实现这个算法的说明:

E1. [Initialize.] Set a′ ← b ← 1, a ← b′ ← 0, c ← m, d ← n.

E2. [Divide.] Let q and r be the quotient and remainder, respectively,
      of c divided by d. (We have c = qd + r and 0 ≤ r < d.)

E3. [Remainder zero?] If r = 0, the algorithm terminates; 
      we have in this case am + bn = d as desired.

E4. [Recycle.] Set c ← d, d ← r, t ← a′, a′ ← a, a ← t − qa, t ← b′, b′ ← b, b ← t − qb, 
      and go back to E2.

我的问题是我不是特别了解这个算法的所有数学,我对普通的欧几里得算法了解得足够好,所以我也了解了一半的扩展算法。我不明白a'andb'的需要t(我知道这t是一个临时变量,但我不明白a = t - qaandb = t - qb部分)。以及变量aa'b和的初始化,b'以及每次迭代时它们之间的值交换。任何人都可以帮助我弥合我对这个算法的理解中的这些差距吗?

4

0 回答 0