您的位置:首页 > 其它

数学(1.费马定理 2.扩展欧几里德算法 3.莫比乌斯反演)

2015-08-14 10:23 309 查看
费马小定理(Fermat Theory)数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。

扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。

欧几里德算法的扩展



扩展欧几里德算法不但能计算(a,b)的最大公约数,而且能计算a模b及b模a的乘法逆元,用C语言描述如下:

int gcd(int a,int b,int &ar,int &br)
{
int x1,x2,x3;
int y1,y2,y3;
int t1,t2,t3;
if(0==a)//有一个数为0,就不存在乘法逆元
{
ar=0;br=0;
return b;
}
if(0==b)
{
ar=0;br=0;
return a;
}
x1=1;x2=0;x3=a;
y1=0;y2=1;y3=b;
int nk;
for(t3=x3%y3;t3!=0;t3=x3%y3)
{
k=x3/y3;
t2=x2-k*y2;t1=x1-k*y1;
x1=y1;x2=y2;x3=y3;
y1=t1;y2=t2;y3=t3;
}
if(y3==1)//有乘法逆元
{
ar=y2;
br=x1;
return 1;
}
else//公约数不为1,无乘法逆元
{
ar=0;
br=0;
return y3;
}
}


000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: