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

求乘法逆元

时间:2015-03-11 21:28:12      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

由于在计算除法时,mod 运算不能直接加在除数被除数后,因此需要将 n / a (mod b )转化为 n * x (mod b ),以便于进行模运算。求 x 的过程就称为求逆元。

对于 a 、b (a 与 b 互素)满足 n / a ≡ n * x (mod b ),则称 x 为 a 模 b 的逆元;

 

一般有两种求逆元的方式:扩展欧几里得求逆元和欧拉-费马定理求逆元;

 

1、扩展欧几里得求逆元:

见(欧几里得与扩展欧几里得);

http://www.cnblogs.com/cenariusxz/p/4323872.html

 

2、欧拉-费马定理求逆元(通过矩阵快速幂实现):

根据欧拉函数 φ(x) 表示小于自变量 x 并与 x 互素的自然数的个数;

根据欧拉定理(基本是用完全剩余系累加推出来的)

 a 与 x 互素时:

a φ(x)≡ 1 (mod x)

即 a * a φ(x)-1≡ 1 (mod x)

所以 :

  a φ(x)-1 即为 a 模 x 的逆元;

 

而费马小定理求的则是欧拉函数的特殊情况:

当 x 为素数时,φ(x)= x - 1 ;

因此当 a 与 x 互素且 x 为素数时:

  a x - 2 即为 a 模 x 的逆元;

 

求乘法逆元

标签:

原文地址:http://www.cnblogs.com/cenariusxz/p/4330820.html

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