数·论·小·结(1/2)

天泽龟

2018-07-28 01:44:27

Personal

新的知识及时巩固QWQ!!

Taught~By~JRC

本章内容:EXGCD,逆元,剩余定理

拓欧定理:

证明:数学归纳

  1. 对于(a,0),显然ax=a的解是1(:з」∠)
  2. 设 b<t 时,假设成立(回想起在老刘那里上课的场景QWQ)。
  3. 当 b=t 时,存在bx+(a%b)y=gcd(b,a%b);(这步依赖了gcd的过程)。
  4. 对于一般情况,则有

右式 =b*x+(a%b)y=bx+(a-[a/b]*b)*y

左式=gcd(b,a%b)=gcd(a,b)

b*x+(a-[a/b]*b)*y=gcd(a,b); b*x+a*y-[a/b]*b*y=gcd(a,b); a*y+b*x-[a/b]*b*y=gcd(a,b); a*y+(x-[a/b]*y)*b=gcd(a,b);
  1. 于是就得到一组解:x=y,y=x-[a/b]*y,其中内含的x,y均为上一层递归的答案。

程序:通过递归求解即可:

ll exgcd(ll a,ll b)
{
    if (!b) 
    {
        x=1,y=0; return a;
    }
    else{
        ll ans=exgcd(b,a%b);
        ll k=x;
        x=y; y=k-(a/b)*y; return ans;
    }
}

注意:对于一般柿子ax+by=c

快速幂代码(p-=2):

ll ni(ll a,ll p,ll mo) //别忘膜P 
{
    ll ans=1,pp=p;
    a=a%mo;  //pow初始a 
    while (pp)
    {
        if (pp%2) ans=ans%mo*a%mo;
        a=a*a%mo; pp/=2;
    }
    return ans%mo;
}

参考这位dalao算法

中国剩余定理

若方程:

a_1,a_2,a_3...a_n均互质,则一定存在唯一解:A_1*A_1^-*b1+A_2*A_2^-*b2+...A_n*A_n^-*bn,其中A^-为A的逆元,A_iLCM/a_i