导航

除法取模

Posted on 2016-01-26 10:06  POOH1DROSE  阅读(1542)  评论(0编辑  收藏  举报

2016.1.26

 

在加减乘都有公式方便我们计算时,除法显得有些丧心病狂,(a/b)%m显然不一定等于( (a%m) / (b%m) )%m.

但其实除法取模如果在算法竞赛中遇到一般都会有小技巧来避免这一步,但在这里还是说一下网上的一般处理办法。

那当然就是费马小定理

在p为素数,b无法被p整除的情况下,有bp-1≡1(mod p)

所以(1/b)*bp-1≡(1/b)(mod p)

即bp-2≡(1/b)(mod p)

于是(a/b)%m就变成了(a*bp-2)%m

而bp-2可以用快速幂解决

完事

---------------------------------我是分割线-------------------------------------------

2016.1.27更新

额上次忘说了。。。

事实上我们只是想把被模数的分母给搞没了而已= =

而又根据某乘法取模公式,我们知道如果原式乘以一个模p等于1的数,那么该式模p的值不变。

那么我们可以找到b的逆元t,使得b*t ≡ 1 (mod p)

那么就有(1/b) ≡ (1/b)*b*t ≡ t (mod p)

逆元用扩展欧几里得搞搞就好啦