数论,关于求乘法逆元素

Posted

tags:

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

知道一个数的模怎么求他的乘法逆元素啊?
比如求143^-1(mod7)=5(mod7)
我知道5*143=1(mod7)
因此5是143的乘法逆元素,可是这个5是怎么得出来的啊?
也就是如果只知道143和7这两个数,怎么求得5是143(mod7)的乘法逆元素.
我资料上写的是用欧拉公式得出来的,怎么得出来的?
谢谢。懂了再加分~~~~~~~~~

参考技术A 用欧拉定理吧
设f(p)为欧拉函数(就是那个fai(p),那个fai打不出来)
143^f(p)同余于1(modp)
则143^(f(p)-1)即为143modp的逆,在p=7的情景下,143^(f(p)-1)同余于5
这个似乎不太实用,计算量很大的
参考技术B 143=3mod7
3*5=15=1mod7
1/143mod7=7n+1/13*11mod7
n=3 ,7n+1=22
22/11*13mod7
2/13mod7即7n+2/13
n=9时7n+2=65
65/13=5mod7
11*13mod7
4*6mod7
24mod7
3mod7本回答被提问者采纳

总结——数论:乘法逆元

零 乘法逆元

  对于缩系中的元素,每个数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 }

 

二 费马小定理求逆元

 



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

总结——数论:乘法逆元

数论学习之乘法逆元

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

「数论基础」 乘法逆元

浅谈数论

乘法逆元通俗易懂的理解方法