zoukankan      html  css  js  c++  java
  • 「乘法逆元」 学习笔记

    若$ab ≡ 1 (mod p)$,则称$b$是$mod p$意义下$a$的乘法逆元,可记为$a^{-1}$

    定义反过来也是成立的,即$a$是$mod p$意义下$b$的乘法逆元

    乘法逆元

    意义

    模运算中的除法是不符合四则运算法则的,然而加减乘都符合。所以数学家们利用乘法逆元来完成除法的需求。

    例如有同余方程$a * b ≡ c ( mod p )$,若要消去$b$,可乘上$b$在模$p$意义下的乘法逆元$b^{-1}$,由于$b * b^{-1} ≡ 1 ( mod p )$,因此$a ≡ c * b^{-1} ( mod p )$

    扩展欧几里得算法

    直接求解此同余方程$a*b ≡ 1  ( mod p )$即可

    欧拉定理

    由于$a^{φ(n)} ≡ 1  ( mod p )$,故任意的$a$的逆元可以是$a^{φ(n)-1}$

    线性递推

    当要求解$1...N$每个数的逆元(模意义相同)时,采用线性递推最为高效

    设此时模意义为$p$,可以将$p$表示为$p = k * i + r$

    显然$$k * i + r ≡ 0 ( mod p )$$

    两边同时乘以$i^{-1} * r^{-1}$可得$$k * i * i^{-1} * r ^ {-1} + r * i^{-1} * r^{-1} ≡ 0 ( mod p )$$$$k * r^{-1} + i^{-1} ≡ 0 ( mod p )$$

    移项即可$$ i^{-1} ≡ -k * r^{-1}  ( mod p )$$

    其意义也就是$$i^{-1} ≡ -left lfloor dfrac{p}{i} ight floor * (p \% i)^{-1}  ( mod p )$$

    这就是递推公式了

  • 相关阅读:
    python的mysql-connector和pymysql
    java知识整理
    Spring——使用自定义标签
    Eclipse maven 错误修正方法:An error occurred while filtering resources
    设计模式--模板模式
    编译Spring源码
    Lunix 命令
    (转)设计模式——策略模式
    JVM(一)
    SenjuFamily项目总结 之 Activiti 学习总结(一)
  • 原文地址:https://www.cnblogs.com/qixingzhi/p/9332813.html
Copyright © 2011-2022 走看看