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

前言

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

What is 逆元

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

a/bmodm a / b m o d m

=a/b1modm = a / b · 1 m o d m

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

=acmodm = a · c m o d m

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

如何求逆元

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

apa(modp) a p ≡ a ( m o d p )
aap1a(modp) a · a p − 1 ≡ a ( m o d p )
ap11(modp) a p − 1 ≡ 1 ( m o d p )
aap21(modp) a · a p − 2 ≡ 1 ( m o d p )

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

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

后记

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

你可能感兴趣的:(总结,Exgcd,费马小定理,逆元)