乘法逆元 -- 模运算不满足分配律

乘法逆元

(a + b) % p  = (a % p + b % p) % p
(a - b) % p  = (a % p - b % p) % p
(a * b) % p  = (a % p * b % p) % p
(a / b) % p != (a % p / b % p) % p

数学家们无法忍受除法求模时不能满足分配律,于是定义了乘法逆元

  • 定义: 若在(mod p)的意义下,对于一个整数a,有 a ∗ x ≡ 1 ( m o d p ) a * x \equiv 1(mod p) ax1(modp),即(a*x - 1) % p = 0那么这个整数x即为a的乘法逆元,同时a也为x的乘法逆元
  • 充要条件: a存在模p的乘法逆元的充要条件是gcd(a, p) = 1, 即a与p互质
  • 应用:求取 (a / b) % p 等同于a * (b的逆元) % p

真的会一直存在(a / b) % p = a * (b的逆元) % p 吗?

证明:假设b的逆元是x,有 b ∗ x ≡ 1 ( m o d p ) b * x \equiv 1(mod p) bx1(modp),假设(a / b) % p = z

  • (a / b) % p = z ------------------------------------------ × b \times b ×b
  • a % p = (z * b) % p ------------------------------------- × x \times x ×x
  • a % p * x = (z * b) % p * x ------------------------------ 模运算与乘除运算优先级相同
  • a * x % p = (z * b * x) % p
  • b ∗ x ≡ 1 ( m o d p ) b * x \equiv 1(mod p) bx1(modp)
  • a * x % p = (z * (b * x)) % p
  • a * x % p = {(z % p) * [(b * x) % p]} % p ---------------- 乘法取模满足分配律
  • a * x % p = [(z % p) * 1] % p
  • a * x % p = z % p
  • a ∗ x ≡ z ( m o d p ) a * x \equiv z(mod p) axz(modp)
  • 所以(a / b) % p = a * x % p = z

所以(a / b) % p = a * (b的逆元) % p


求解逆元

求解逆元的方法有很多,费马小定理(p 为质数),扩展欧几里得算法线性递推

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值