乘法逆元

对于a, b, c\in\mit Z,取余运算(mod)满足以下运算律:

(a+b)\mod c=(a\mod c+b\mod c)\mod c

(a-b)\mod c=(a\mod c-b\mod c)\mod c

(a*b)\mod c=((a\mod c)*(b\mod c))\mod c

但除法并没有如此性质。

在乘法中,显然有

a\div b = a\cdot \frac{1}{b}

在模运算中,我们也希望找到x使得(a\div b)\mod c=(a\cdot x)\mod c

故定义乘法逆元这一概念:

\mod p意义下,对于一个整数a,有a\cdot x\equiv 1(\mod p)\quad a, x\in \mit Z,则称xa的乘法逆元,记作a^{-1}。同时a也为x的乘法逆元。

由费马小定理:若p是质数,a\in \mit Z\gcd(a, p)=1a^{p-1}\equiv1(\mod p)

可知在\mod p意义下,a\cdot a^{p-2}\equiv1(\mod p),故a的乘法逆元为a^{p-2}。但显然a^{p-2}这个值会比较大,有没有比较小的a的乘法逆元呢?有。取模,a^{p-2}\mod p也是a的逆元,证明如下:

x=a^{p-2}\mod pn\in \mit Z,显然x\mod p=x

(x+n\cdot p)\mod p=(x\mod p+0)\mod p=x=a^{p-2}\mod p

\exists n\in \mit Z使x+n\cdot p=a^{p-2},可转化为a^{p-2}\mod p\equiv a^{q-2}(\mod p),故a\cdot(a^{p-2}\mod p)\equiv1(\mod p),即a^{p-2}\mod pa的逆元。

证毕。

a^{p-2}\mod p可在乘方时不断取模防止溢出。

但若求某一区间内每个数关于\mod p的乘法逆元时,求a^{p-2}\mod p计算量的话就很大了,即使用了快速幂。此时考虑运用递推关系。

p=k\cdot i+r, 1<r<i<p

k\cdot i+r \equiv 0\quad \qquad(\mod p)

两边同乘i^{-1}\cdot r^{-1}

k\cdot r^{-1}+i^{-1}\equiv0\qquad (\mod p)

i^{-1}\equiv -k\cdot r^{-1} \quad\qquad(\mod p)

i^{-1}\equiv -\left \lfloor \frac{p}{i} \right \rfloor\cdot (p\mod i)^{-1} \quad(\mod p)

\mod p的意义下,设mi[i]=i^{-1},则1<i<pmi[i]=((p-\left\lfloor \frac{p}{i} \right\rfloor)\cdot mi[p\mod i])\mod p

时间复杂度为\Theta (p)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值