欧几里得、扩展欧几里得、同余

本文详细介绍了同余的概念,包括费马小定理、欧拉定理及其应用。接着探讨了扩展欧几里得算法,解释了如何找到整数方程的特解和通解。乘法逆元部分阐述了如何在不同条件下求解模逆元,特别提到了质数模下和非互质情况的处理方法。最后,讨论了线性同余方程的解法,强调了解决条件和使用扩展欧几里得算法的重要性。
摘要由CSDN通过智能技术生成

一、同余:
1。若整数a和整数b除以正整数m的余数相等,则称a,b模m同余,记作a≡b(mod m)。

2。费马小定理:若p是质数,则对于任意整数a,有ap ≡a(mod p)。

3。欧拉定理:若正整数a,n互质,则 aφ(n)≡1(mod n) ,其中φ(n)是欧拉函数。

4。若正整数a,n互质,则对于任意正整数b,有ab≡ab mod φ(n)(mod n)。

很多问题要求我们对一个质数p取模后输出。面对乘方算式,我们可以先把 底数对p取模(底数不是p的倍数)、指数对φ(p)取模,再计算乘方。

若a,n不一定互质且b>φ(n)时,有ab≡ab mod φ(n) + φ(n) (mod n)。
这意味着即使底数与模数不互质,我们也有办法把指数的规模缩小到容易计算的范围。

5。若正整数a,n互质,则满足ax≡1(mod n)的最小正整数x0是φ(n)的约数。

二、扩展欧几里得算法:
1。对于任意整数a,b,存在一对整数x,y,满足 ax+by=gcd(a,b)。
求解ax+by=gcd(a,b)的一组特解x0,y0,并返回gcd(a,b)。

int exgcd(int a,int b,int &x,int &y)
{
   
    if(b==0)
    {
   
        x=1;
        y=0;
        return a;
    }
    int d=exgcd(b,a%b,x,y);
    int z=x;
    x=y;
    y=z-y*(a/b);
    return d;
}

int d=exgcd(a,b,x0,y0);

2。对于一般的方程ax+by=c,它有解当且仅当gcd(a,b&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值