zoukankan      html  css  js  c++  java
  • 除法取模

    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)

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

  • 相关阅读:
    2021.10 好运气
    2021.9 抢购
    2021.8 全周期工程师
    2021.7 创业者
    2021.6 过年
    jenkins学习17
    httprunner 3.x学习18
    httprunner 3.x学习17
    python笔记57-@property源码解读与使用
    httprunner 3.x学习16
  • 原文地址:https://www.cnblogs.com/16er/p/5159432.html
Copyright © 2011-2022 走看看