乘法逆元 java_乘法逆元

转自:https://www.bilibili.com/video/BV12E411c7QH

一,引入

(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

上式中,第四个是不成立的,即除法不存在逆元。这就让计算 (a / b) %p 变的十分复杂,

因为:

① 分配律的好处:可以在大数运算时候先取余让数变小,在进行加减乘运算

② 除法的弊端 :除法会掉精度

于是就有人想出乘法的逆元来解决这个问题。

二,乘法逆元

1,定义:若在 mod p 的情况下,对于一个整数 a,有 a*x ≡ 1 (mod p),那么这个整数 x 即为 a 的乘法逆元,同时 a 也为 x 的乘法逆元   (  ≡ 表示 同余;(mod p) 表示  该式子在两边都 mod p 的情况下成立)

2,充要条件:a 存在 mod p 的乘法逆元的充要条件是 gcd ( a , p ) = 1,即 a 与 p 互质。

3,应用:求取 (a / b) %p。该值 等同与 a*(b 的逆元) % p

4,证明:( a/b ) % p = a*(b 的逆元) % p

设 b 的逆元 为 x,则  b*x ≡ 1 ( mod p ),可以把 x 认为是  b 在数论上的倒数

式子 ① :(a / b) %p = m,即(a / b)≡  m (mod p)

将 ① * b * x 得:   a * x %p = m * b * x %p,

因为:b*x ≡ 1 ( mod p )

所以有:a * x  ≡ m ( mod p )

所以有:a * x  ≡ m ≡ a / b  ( mod p )

5,费马小定理

可以用来求 b 的逆元:

费马小定理:假如 a 是一个整数, p 是一个质数(在竞赛通常 p 为 质数,因为 p 不为质数时容易找到余数的规律),那么

1,如果 a 是 p 的倍数,a^p ≡ a (mod p)

2,如果 a 不是 p 的倍数,a^(p-1) ≡ 1 (mod p)

同余式:a ≡ b (mod n) 表示 a,b 都模 n 后的值相等

因为 乘法逆元必须满足,a p 互质,所以只需要考虑第二种情况。

由 2 可得:a * a^(p-2) ≡ 1 ( mod p )

所以 a%p * (a^(p-2) % p) = 1 %p

即 a^(p-2) % p 为 a 的逆元,其中 p-2 次方可用快速幂求解。

6,总结:

( a/b ) % p = a*(a^(p-2) % p) % p

=========== ========== ========= ========= ======== ====== ==== === == =

水调歌头 (宋)辛弃疾

我饮不须劝,正怕酒尊空。别离亦复何恨,此别恨匆匆。

头上貂蝉贵客,花外麒麟高冢,人世竟谁雄。一笑出门去,千里落花风。

孙刘辈,能使我,不为公。余发种种如是,此事付渠侬。

但觉平生湖海,除了醉吟风月,此外百无功。毫发皆帝力,更乞鉴湖东。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值