擴展歐幾里得算法

擴展歐幾里得算法  是歐幾里得算法 （ 又叫輾轉相除法 ） 的擴展 。 已知整數a 、 b ， 擴展歐幾里得算法可以在求得a 、 b的最大公約數的同時 ， 能找到整數x 、 y （ 其中一個很可能是負數 ） ， 使它們滿足貝祖等式 如果a是負數 ， 可以把問題轉化成 （ 爲a的絕對值 ） ， 然後令 。 通常談到最大公因數時 ， 我們都會提到一個非常基本的事實 （ 由貝祖等式給出 ） ： 給定二個整數a 、 b ， 必存在整數x 、 y使得ax + by = gcd ( a, b ) 。 衆所周知 ， 已知兩個數和 ， 對它們進行輾轉相除 （ 歐幾里得算法 ） ， 可得它們的最大公約數 。 不過 ， 在歐幾里得算法中 ， 我們僅僅利用了每步帶餘除法所得的餘數 。 擴展歐幾里得算法還利用了帶餘除法所得的商 ， 在輾轉相除的同時也能得到貝祖等式 （ 貝祖定理中描述的等式 ） 中的x 、 y兩個係數 。 以擴展歐幾里得算法求得的係數是滿足裴蜀等式的最簡係數 。 另外 ， 擴展歐幾里得算法是一種自驗證算法 ， 最後一步得到的和 （ 和的含義見下文 ） 乘以後恰爲和 ， 可以用來驗證計算結果是否正確 。 擴展歐幾里得算法可以用來計算模反元素 ， 求出模反元素是RSA加密算法中獲得所需公鑰 、 私鑰的必要步驟 。