总结——数论:乘法逆元

Posted travelller

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结——数论:乘法逆元相关的知识,希望对你有一定的参考价值。

零 乘法逆元

  对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得 ax≡1(mod n) 。
  一个数有逆元的充分必要条件是 gcd(a,n)=1 ,此时逆元唯一存在。
  逆元的含义:模 n 意义下,1个数 a 如果有逆元 x ,那么除以 a 相当于乘以 x 。

 

一 扩展欧几里得求逆元

  将方程 ax=1(mod m) 转化为 ax+my=1 ,套用求二元一次方程的方法,用扩展欧几里得算法求得一组 x0,y0 和 gcd。当 gcd=1 时逆元存在,调整 x0 在 [0,m-1] 的范围内即可。时间复杂度为O(ln n)。

 1 typedef  long long ll;
 2 void extgcd(ll a,ll b,ll& d,ll& x,ll& y){
 3     if(!b){ d=a; x=1; y=0;}
 4     else{ extgcd(b,a%b,d,y,x); y-=x*(a/b); }
 5 }
 6 ll inverse(ll a,ll n){
 7     ll d,x,y;
 8     extgcd(a,n,d,x,y);
 9     return d==1?(x+n)%n:-1;
10 }

 

二 费马小定理求逆元

 



以上是关于总结——数论:乘法逆元的主要内容,如果未能解决你的问题,请参考以下文章

「数论基础」 乘法逆元

数论--乘法逆元

『数论』乘法逆元

数论学习之乘法逆元

浅谈数论

SWJTU2017-6月月赛 G-A Easy Counting Problem[数论][乘法逆元]