Extended Euclid - 扩展欧几里得算法
问题
求两个整数,满足不定方程:
其中是正整数,是的最大公约数。
解法
扩展欧几里得算法来源于最大公约数的特性,即对于正整数的最大公约数,必然存在整数满足本题的等式。
根据上一节Euclid中的迭代式:
存在相应的整数满足:
变换等式得到:
注意到两正整数的取模运算满足:
其中表示向下取整,小于等于的最大整数。
可以推导出:
将上面等式按照参数等式变换,得到:
由于等式两边括号外的参数完全相同,可得:
递归的最后一步时有。这时有一组解:
在辗转相除发计算最大公约数时,每一步中都可以顺带着计算出这一步的,最后得到一组解。该算法的时间复杂度约为。