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

逆元学习

时间:2015-09-10 00:16:28      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

模p乘法逆元:

对于整数a,p,若存在整数b,满足ab mod p = 1 ,则说b是a模p的乘法逆元

a存在模p乘法逆元的充分必要条件是gcd(a,p)=1

证明略。

 

那什么时候我们需要用到逆元呢?

比如我们要求a/b%p,我们知道,乘法是可以直接取余,但是除法是不可以直接取余的。

这个时候我们要怎么转化呢?

如果b有模p的乘法逆元的话,

设乘法逆元为x,则bx % p = 1

则a/b%p=(a/b)*bx % p= ax % p

这样我们只要求出x,就可以求出ax%p,即a/b%p了

 

接下来是求x的时候了:

当p是素数的时候,

由费马小定理,有a^p≡a(mod p),即a^(p-1)≡1(mod p),即a*a^(p-2)≡1(mod p)

而我们知道ax%p=1,所以有x=a^(p-2)

这个时候用快速幂加速得到x

 

当p不是素数的时候,

欧拉函数或者扩展gcd,

未完待续。。。

 

逆元学习

标签:

原文地址:http://www.cnblogs.com/-maybe/p/4796259.html

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