欧几里德的真题和答案
欧几里德算法,也称为轮流除法,用于计算两个整数A和B的最大公约数..其计算原理取决于以下定理:
定理:gcd(a,b) = gcd(b,a mod b)
证明A可以表示为a = kb+r,那么R = A mod B。
假设d是a和b的公约数,那么有
D|a,d|b,r = a-kb,所以d|r
所以d是(b,a mod b)的公约数。
假设d是(b,a mod b)的公约数,那么
D | b,d |r,但是a = kb +r R。
所以d也是(a,b)的公约数。
所以(a,b)和(b,a mod b)的公约数相同,它们的最大公约数一定相等,证明了。
欧几里德算法就是基于这个原理,它的算法用C++语言描述为:
无效掉期(利息和利息。一、int & ampb)
{
int c = a;
a = b;
b = c;
}
int gcd(int a,int b)
{
如果(0 == a)
{
返回b;
}
如果(0 == b)
{
返回a;
}
如果(a & gtb)
{
互换(a,b);
}
int c;
for(c = a % b;c & gt0 ;c = a % b)
{
a = b;
b = c;
}
返回b;
}
模p乘法逆元素
对于整数A和P,如果有一个整数B满足ab mod p =1,那么B就是A的模P乘法的逆。
定理:A有模P的乘法逆的充要条件是gcd(a,p) = 1。
证明:
首先,证明充分性。
如果gcd(a,p) = 1,根据欧拉定理,aφ(p) ≡ 1 mod p,因此,
显然aφ(p)-1 mod p是模p乘法的逆。
重新证明必要性
假设P与模A的乘法逆是b。
ab 1 mod p
那么ab = kp +1,所以1 = ab-kp。
因为gcd(a,p) = d
所以d | 1
所以d只能是1。
扩展欧几里德算法
扩展的欧几里德算法不仅可以计算(A,B)的最大公约数,还可以计算模A、模B、模B的乘法逆,用C语言描述如下:
int gcd(int a,int b,int & ampar,int & ampbr)
{
int x1,x2,x3;
int y1,y2,y3;
int t1,t2,T3;
如果(0 == a)
{//如果一个数是0,就没有乘法逆。
ar = 0;
br = 0;
返回b;
}
如果(0 == b)
{
ar = 0;
br = 0;
返回a;
}
x 1 = 1;
x2 = 0;
x3 = a;
y 1 = 0;
y2 = 1;
y3 = b;
int k;
for(T3 = x3 % y3;t3!= 0 ;t3 = x3 % y3)
{
k = x3/y3;
T2 = x2-k * y2;
t 1 = x 1-k * y 1;
x 1 = y 1;
x 1 = y2;
x3 = y3
y 1 = t 1;
y2 = t2
y3 = t3
}
if( y3 == 1)
{
//有乘法逆运算
ar = y2
br = x 1;
返回1;
}否则{
//公约数不是1,没有乘法逆。
ar = 0;
br = 0;
返回y3;
}
}
扩展的欧几里德算法在计算最大公约数上与普通欧几里德算法一致。计算乘法的逆元很难理解。我花了半个小时想办法证明他。
首先,重复一下我在《可分性》一书中的一个论断:
如果gcd(a,b)=d,则有m,n,所以d = ma+nb。称这个关系为a,b组合整数D,m,n为组合系数。当d=1时,有ma+nb = 1。此时可以看出,M是模A的乘法逆,N是模B的乘法逆..
为了证明上述结论,我们把上述计算中的和易作为ti的迭代初值,考察一组数(t1,t2,t3)。归纳证明,用扩展的欧几里德算法计算后,每行满足a×t1+b×t2 = t3。
第一行:1 × a+0 × b = a成立。
第2行:0 × a+1 × b = b成立。
假设前k线全部为真,检查第k+1行。
对于线路k-1和线路K,有
t 1(k-1)T2(k-1)T3(k-1)
t1(k) t2(k) t3(k)
单独见面:
t 1(k-1)×a+T2(k-1)×b = T3(k-1)
t1(k) × a + t2(k) × b = t3(k)
根据扩展的欧几里德算法,假设T3 (k-1) = JT3 (k)+R。
然后:
t3(k+1) = r
T2(k+1)= T2(k-1)-j×T2(k)
t 1(k+1)= t 1(k-1)-j×t 1(k)
规则
t 1(k+1)×a+T2(k+1)×b
= t 1(k-1)×a-j×t 1(k)×a+
t2(k-1) × b - j × t2(k) × b
= t3(k-1) - j t3(k) = r
= t3(k+1)
获得证书
所以最后t3迭代计算到1时,就有t1× a+t2 × b = 1。显然,t1是模A的乘法逆,t2是模B的乘法逆..