码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-10-03 21:29:18      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

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

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

扩展欧几里得求逆元

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

则可以用扩展欧几里得求关于技术分享的方程技术分享的一组解,即求出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];
}

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

标签:

原文地址:http://www.cnblogs.com/AireenYe/p/5929578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!