乘法逆元的求法

目录

目录地址

上一篇

下一篇


逆元的定义

根据前面的定义:对于模数 \(m\) ,若对于剩余类 \([a]\) ,存在剩余类 \([b]\) 使得 \([a]\cdot [b]=[1]\) 则称呼 \([b]\)\([a]\) 的逆元

我们写成同余的形式:若对于模数 \(m\) 和整数 \(a\) ,若 \(b\cdot a\equiv 1(\mod m)\) 则称呼 \(b\)\(a\) 的逆元,记为 \(a^{-1}\)\(\boldsymbol{Inv}(a)\)

根据裴属定理,只有 \(ax+my=k\cdot gcd(a,m),k\in Z_+\) 有解

因此,只有 \(ax\equiv k\cdot gcd(a,m)(\mod m)\) 是有解的

因此,\(a\) 有逆元的充要条件为 \(gcd(a,m)=1\)


逆元的性质

我们证明,逆元在取模意义下是唯一的:设 \(b,c\) 同时是 \(a\) 的逆元,且 \(b\not\equiv c(\mod m)\)

\(b\equiv b\cdot 1\equiv b\cdot(a\cdot c)\equiv (b\cdot a)\cdot c\equiv 1\cdot c\equiv c(\mod m)\)

与条件相悖,故 \(b\equiv c(\mod m)\)

故我们知道,对于一个剩余类,它的逆元是唯一的

但对于一个数,它的逆元是无穷多个的,我们一般称 \(0\leq a^{-1}<m\) 的那个为逆元

额外的,逆元还具有积性:

\((ab)^{-1}\equiv a^{-1}\cdot b^{-1}(\mod m)\)


逆元的求法

根据拓展欧几里得算法(exgcd)可以求出确定的

\(ax+my=gcd(a,m)\)\(x,y\)

\(gcd(a,m)=1\)\(a\) 有一个逆元为 \(x\)

故所求逆元为 \((\ (x\mod m)+m)\mod m\)

int x,y,g=exgcd(a%m,m,x,y),inv;
if(g==1) inv=(x%m+m)%m;

同时,由于 \(gcd(a,m)=1\) 我们还可以根据欧拉定理

\(a^{-1}\cdot a\equiv 1\equiv a^{\boldsymbol\varphi(m)-1}\equiv a^{\boldsymbol\varphi(m)-2}\cdot a(\mod m)\)

\(a^{-1}\equiv a^{\boldsymbol\varphi(m)-2}(\mod m)\)

int inv=fpow(a%m,phi(m)-2,m);
posted @ 2020-03-02 09:54  JustinRochester  阅读(436)  评论(0编辑  收藏  举报