[蒟蒻修炼计划][学习笔记]数论

Posted Aireen Ye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[蒟蒻修炼计划][学习笔记]数论相关的知识,希望对你有一定的参考价值。

乘法逆元:若技术分享,则称技术分享技术分享技术分享意义下的乘法逆元.

本文介绍乘法逆元的三种求法.

扩展欧几里得求逆元

因为技术分享,所以设技术分享满足技术分享,

则可以用扩展欧几里得求关于技术分享的方程技术分享的一组解,即求出b.

inline int exgcd(int a,int b,int &x,int &y){
    if(!b){
        x=1;y=0;return a;
    }
    int ret=exgcd(b,a%b,y,x);
    y-=a/b*x;return ret;
}
inline int inver{
    r=exgcd(a,p,b,q);
    if(r!=1) return -1;
    return b;
}

费马小定理求逆元

因为技术分享,所以技术分享,

技术分享为a在技术分享意义下的逆元.

typedef long long ll;
inline ll power(ll x,ll k){
    ll ret=1;
    while(k){
        if(k&1) ret=ret*x%p;
        x=x*x%p;k>>=1;
    }
    return ret;
}
inline ll inver{
    return power(a,p-2);
}

线性求逆元

技术分享表示技术分享技术分享(技术分享为质数)意义下的逆元。

技术分享

证明:因为技术分享,

所以技术分享

所以技术分享

所以技术分享

所以技术分享技术分享

 技术分享

 技术分享

 技术分享

typedef long long ll;
inline ll inver{
    re[1]=1;
    for(ll i=2,mul;i<=a;++i){
        re[i]=-p/i*re[p%i]%p;
        if(re[i]<0){
            mul=(0-re[i])/p+1;
            re[i]=(re[i]+mul*p)%p;
        }
    }
    return re[a];
}

以上是关于[蒟蒻修炼计划][学习笔记]数论的主要内容,如果未能解决你的问题,请参考以下文章

蒟蒻修炼计划-KMP 模板

[蒟蒻修炼计划][模板] 2-SAT

蒟蒻AJY的学习计划

[蒟蒻修炼计划][bzoj3670][Noi2014]动物园

[蒟蒻修炼计划][cf621E]Wet Shark and Blocks

学习笔记--数论--莫比乌斯反演初认识