乘法逆元的求法
目录
逆元的定义
根据前面的定义:对于模数 \(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);