扩展的欧几里得算法原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
扩展的欧几里得算法原理
扩展的欧几里得算法(Extended Euclidean algorithm)也称为扩展欧几里得求最大公因数算法,是一种计算两个整数的最大公因数(GCD)以及解决线性不定方程组的方法。
扩展的欧几里得算法的原理是基于欧几里得算法(Euclidean algorithm),欧几里得算法的基本思想是通过逐步取两个数的除数和余数的过程中不断缩小问题的规模,最终将问题的规模缩小到可以直接得出最终的结果。
欧几里得算法利用的是gcd(a, b) = gcd(b, a mod b)的性质。
而扩展的欧几里得算法的原理在于扩展欧几里得定理:对于任意整数a、b,存在整数x、y,使得ax+by=gcd(a,b)。
具体实现过程中,我们可以设a、b为两个需要求GCD的整数,上述定理可以表示为:
ax1 + by1 = gcd(a,b)
就是说,我们要找到x1、y1与a、b,同时满足上述等式。
接下来就是具体的计算步骤:
首先,利用欧几里得算法,求出a、b的最大公因数gcd(a, b),并记录下每次得到的余数和除数:
b = r1q2 + r2
...
最终,得到一个余数为0的方程,即gcd(a,b) = r(m-1)。
这时,我们就可以根据上述定理来求得x1、y1。
我们可以将上述的余数和除数代入定理中,得到:
r(m - 2) = r(m - 4) - r(m - 3)q(m - 2)
其中,
a1 = (-1)^(m-1)q1
这样,我们就可以根据扩展欧几里得定理求得x1、y1了。
例如,我们要求两个数3528和378,它们的最大公因数gcd(3528,378) = 126,那么我们可以利用欧几里得算法求解:
3528 = 9 * 378 + 126
378 = 3 * 126 + 0
可以看到,最终的余数为0,因此gcd(3528,378) = 126。
因此,x1 = -10,y1 = 93。
这样,我们就得到了3528和378的最大公因数为126,同时满足3528 * (-10) + 378 * 93 = 126。
如果要求解其他的问题,比如线性同余方程等,都可以利用上述的原理和方法来求解。