专栏文章
拓展欧几里得算法
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miq7lvdh
- 此快照首次捕获于
- 2025/12/04 00:16 3 个月前
- 此快照最后确认于
- 2025/12/04 00:16 3 个月前
拓展欧几里得算法
欧几里得算法
一般形式
证明
因为 ,所以可以简化
减法运算为模运算。即 。
code
CPPinline int gcd (register const int x, register const int y)
{
return y == 0 ? x : gcd (y, x % y);
}
主要步骤
拓展欧几里得算法主要用来求一个形如 的不定方程的最小解。
由翡蜀定理: 的最小解为 。
具体过程如下:
当 时, 明显 , 那么就有
然后我们就假设当前上一层的答案为,则可得:
又因为
所以
那么 ,
code
CPPinline int Ex_Gcd (register const int a, register const int b, register int &x, register int &y)
{
if (not b)
{
x = 1;
y = 0;
return a;
}
register const int d(Ex_Gcd (b, a % b, x, y));
register const int temp (y);
y = x - (a / b) * y;
x = temp;
return d;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...