码迷,mamicode.com
首页 > 其他好文 > 详细

逆元小结

时间:2018-02-21 23:00:01      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:gpo   递归   logs   快速   inline   计算   tar   素数   费马小定理   

逆元


定义

\(a\times x\equiv1 (\bmod b)\) and \(gcd(a,b)=1\),那么\(x\)\(a\)\(b\)意义下的逆元(倒数),记为\(a^{-1}\)\(inv(a)\)

作用

带除同余计算。对于\(\frac{a}{b}(\bmod p)\),可以求出\(b\)\(\bmod p\)意义下的逆元乘上\(a\)并模\(p\)即可算出表达式的值。

算法

  • 拓展欧几里得

    利用拓欧求解线性同余方程\(a\times x \equiv 1 (\bmod {b})\),转化求解为\(a\times x+b\times y=1\)

  • 类欧几里得

    仅当\(b\)为质数。

    原式为:\(a\times x\equiv 1 (\bmod {b})\)

    \(x=p\bmod a\), \(y={(p-x)}\div a\)

    \(x+y\times a=p \Rightarrow (x+y\times a)\bmod p=0\)

    移项 \(x\bmod p=(-y)\times a\bmod p\)

    继续 \(x\times a^{-1}\bmod p=(-y)\bmod p\)

    \(a^{-1}=(p-y)\times x^{-1}\bmod p\)

    即:\(inv(a)=(p-(p-p\bmod a)\div a)\times inv(p\bmod a)\bmod p\),递归进行即可,其中\(inv(1)=1^{-1}=1\)

  • 快速幂

    利用费马小定理:若\(b\)素数\(a\)为正整数,且\(a\)\(b\)互质。 则有\(a^{p-1} \equiv 1 (\bmod {b})\)

    代入式子:\(a\times x\equiv 1 (\bmod {b})\)

    \(a\times x\equiv a^{b-1} (\bmod {b})\)

    \(x \equiv a^{b-2} (\bmod {b})\)

    则利用快速幂即可算出。

  • 线性递推

    用于求一连串数字对于一个\(\bmod p\)的逆元。可以参考法2改为递推。

    \(i^{-1}\Leftarrow (p-(p-p\bmod a)\div a)\times (p\bmod a)^{-1}\bmod p\)

总结

拓展欧几里得最通用。法2,3,4有前提\(p\)为质数。

逆元小结

标签:gpo   递归   logs   快速   inline   计算   tar   素数   费马小定理   

原文地址:https://www.cnblogs.com/FreeRing/p/8457657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!