「乘法逆元」 学习笔记

若$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} \right \rfloor * (p \% i)^{-1} \ ( \ mod \ p \ )$$

这就是递推公式了

posted @ 2018-07-18 21:44  DennyQi  阅读(227)  评论(0编辑  收藏  举报