乘法逆元作用

本文介绍了数论中的逆元概念,特别是在模运算中的应用。当常规除法在模运算中不适用时,逆元提供了一种将除法转换为乘法的方法,从而解决了大数值计算中的精度问题。通过举例和推论说明了如何使用逆元求解(A/B)%p这类表达式,并强调了逆元在简化计算和避免溢出中的作用。求逆元可以利用扩展欧几里得算法或快速幂等方法。逆元在数论和密码学等领域中有重要应用。
摘要由CSDN通过智能技术生成

先说一下什么叫做逆元:
逆元
数论倒数,又称逆元

数论中的倒数是有特别的意义滴

你以为a的倒数在数论中还是1/a吗

(・∀・)哼哼~天真

先来引入求余概念

(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 (错)

为什么除法错的

证明是对的难,证明错的只要举一个反例

(100/50)%20 = 2 ≠ (100%20) / (50%20) %20 = 0

对于一些题目,我们必须在中间过程中进行求余,否则数字太大,电脑存不下,那如果这个算式中出现除法,我们是不是对这个算式就无法计算了呢?

答案当然是 NO (>o<)

这时就需要逆元了

我们知道

如果

a*x = 1

那么x是a的倒数,x = 1/a

但是a如果不是1,那么x就是小数

那数论中,大部分情况都有求余,所以现在问题变了

a*x = 1 (mod p)

那么x一定等于1/a吗

不一定

所以这时候,我们就把x看成a的倒数,只不过加了一个求余条件,所以x叫做 a关于p的逆元

比如2 * 3 % 5 = 1,那么3就是2关于5的逆元,或者说2和3关于5互为逆元

总结起来就是

设c是b的逆元,则有b*c≡1(mod m);
推论:(a/b)mod m = (a/b)1mod m = (a/b)bc mod
m=a
c(mod m); 即a/b的模等于a * (b的逆元)的模;
这个推论也就说明了为什么要引入逆元;

逆元的作用
一句话就是,将除法改为乘法;

例如 求 (A / B) %p ;在B的值非常大的情况下,B作为除数,极有可能会爆精度;除数不能太大;所以我们可以把他转化为乘法来解决;

(a/b)mod m = (a/b)*1mod m = (a/b)bc mod
m=ac(mod m);
即a/b的模等于a * (b的逆元)的模;
所以按照这个推论求这个式子的步骤就明了了;

求出B的逆元 (扩展欧几里得,费马小引理+快速幂)都可以求出;
引用公式推论套用即可;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值