浅谈逆元及其求法(费马小定理&Exgcd)

前言

逆元其实是一个很小的知识点,但是在数论中也起到了比较大的作用。这篇文章主要是介绍逆元,和它在一些其他方面的应用。可能我在证明的过程中会出现一些错误,如果你在看这篇文章的过程中发现了问题,欢迎在私信或评论中指出!

What is 逆元

我们想一个问题,如果我们要求在modm下求a/b的答案,这显然很简单。但是当b变到很大的时候,朴素的做法就会“砰”的一声爆炸!!如何解决这类问题呢,我们可以试着将出发转化为乘法。
我们假设c为b在modm意义下的逆元。
b · c 1 ( m o d m ) c · b = 1 ( m o d m )
所以

a / b m o d m

= a / b · 1 m o d m

= a / b · b · c m o d m

= a · c m o d m

所以 a / b m o d m 就转换成了 a · c m o d m

如何求逆元

1)费马小定理;
首先再说这个方法前,我们先回顾一下费马小定理。费马小定理为 a p a ( m o d p ) ( p 为素数,且 a p 互质)。
则可以证明:

a p a ( m o d p )
a · a p 1 a ( m o d p )
a p 1 1 ( m o d p )
a · a p 2 1 ( m o d p )

所以对于一个数 a ,其在 m o d p 意义下的逆元为 a p 2
快速幂求解,时间复杂度是 O ( l o g n )

2)扩展欧几里得算法;
首先我们还是要分析一个问题,假设我们有一个这样的式子 4 X 1 ( m o d 7 ) ,那么我们是否可以把式子转化为 4 X = 7 K + 1 。于是乎我们就可以把式子转换为 4 X 7 K = 1 ,我们就可以通过扩展欧几里得的方法来找出整数解 X K ,最后 X 就是在 m o d 7 意义下与 4 的逆元。这种方法的时间复杂度依旧是 O ( l o g n )

后记

其实逆元真的很简单,这篇文章只是一个证明及总结,代码我没有放,但是非常的好写。

猜你喜欢

转载自blog.csdn.net/Gao_Jue_Yi/article/details/81074716
今日推荐