其他分享
首页 > 其他分享> > 拓展欧几里得

拓展欧几里得

作者:互联网

开门见山,直奔主题

首先要了解拓展欧几里得,先要了解几个概念:

一、裴蜀定理

重要推论是:a,b互质的充分必要条件是存在整数x,y使ax+by=1,也就是 ax+by=gcd(a,b)=1

二、乘法逆元

在中国剩余定理的计算里,需要求一个数字在一个模下的逆元,也就是对于给定的 a,b,找到方程   的一个整数解 a* 。接下来我们分析一下这个方程背后隐藏着什么。根据同余的定义,有  ,也就是存在整数 k使得 b*k=aa*-1 。移一下项,就得到了 aa*-bk=1. 即aa*+(-)bk=1这个形式恰好符合裴蜀定理 ax+by=1 的形式,于是 (a,b)=1 ,这表明 a,b互质是逆元存在的必要条件。

三、欧几里得算法

原来博客有提及过,这里就不详写了,给个代码吧

int gcd(int a, int b) 
{
    if(a < b) return gcd(b, a);
    if(b == 0) return a;
    return gcd(b, a % b);
}


呵呵,进入正题

 

扩展欧几里得计算ax+by=c的整数解(x,y)程序如下:

 

 目前本人还有些不懂,会再问老师。。。

继续水

 

 拜拜

 

标签:aa,return,gcd,欧几里得,拓展,逆元,ax
来源: https://www.cnblogs.com/zch061023/p/15911338.html