数论整合(多为结论)

目录

拓展欧几里得

贝祖定理拓展


拓展欧几里得

给定a,b,求解公式ax=by=gcd(a,b): 

int exgcd(int a,int b,int &gcd,int &x,int &y)
{
    if(!b)
    {
        gcd=a;x=1;y=0;  
    }
    else
    {
        ecgxd(b,a%b,gcd,y,x);
        y-=x*(a/b);
    }
}

注意:解不唯一,假设x1,y1是一组解,则x1+t*b/gcd(a,b)和y1-t*a/gcd(a,b)。

贝祖定理拓展

如果ax+by=n有解,充要条件是n%gcd(a,b)==0.

证明:

  • 设d=gcd(a,b),则根据贝祖定理ax+by=d有解;
  • 推出(a/d)x+(b/d)y=1有解,再推出a(n/d)x+b(n/d)y=n有解;
  • 因已知ax+by=n有整数解,故上式的(n/d)x和(n/d)y均为整数,故n/d为整数,得证。

 

一元线性同余方程:形如ax=c(mod b)的同余式,其中x未知。

求解一元线性同余方程等价于求ax+by=c。

求解ax+by=c:

  • 先判断是否有解——根据充要条件(如果有解,则有gcd(a,b)个模b不同余的解);
  • 先用拓展欧几里得求解ax+by=d的一组特解x1,y1;
  • 设k=c/d,则方程的解集为:x=kx1+t(b/d),y=ky1+t(a/d);

 

模逆

拓展欧几里得算法求解的即为a关于b的模逆。

递推线性逆元打表:inv[1]=1;inv[i]=(p-p/i)*inv[p%i]%p。

逆元的一个重要性质:当p为奇素数时,1~(p-1)的整数模p的所有逆元对应1~(p-1)的所有整数,既是单射又是满射。(比如p=7,1~6模7的逆元分别为1,4,5,2,3,6)。

中国剩余定理

设k组数(ai,bi),其中bi两两互素,要找到最小的正整数x,满足方程组 x=ai(%bi)。

算法步骤:

  • 令B=b1*b2*b3*……*bn,mi=B/bi;
  • 显然gcd(mi,bi)=1,采用拓展欧几里得算出 xi 满足mi*xi=1(%bi);
  • 方程组的解x=(a1x1m1+a2x2m2+……+akxkmk)%B
  • 此方程组任意两个解模B同余,因此x就是最小的。

费马小定理

 

欧拉降幂

求(a^{b}%m)的值,其中a、b都极大。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值