zoukankan      html  css  js  c++  java
  • 逆元学习

    模p乘法逆元:

    对于整数a,p,若存在整数b,满足ab mod p = 1 ,则说b是a模p的乘法逆元

    a存在模p乘法逆元的充分必要条件是gcd(a,p)=1

    证明略。

    那什么时候我们需要用到逆元呢?

    比如我们要求a/b%p,我们知道,乘法是可以直接取余,但是除法是不可以直接取余的。

    这个时候我们要怎么转化呢?

    如果b有模p的乘法逆元的话,

    设乘法逆元为x,则bx % p = 1

    则a/b%p=(a/b)*bx % p= ax % p

    这样我们只要求出x,就可以求出ax%p,即a/b%p了

    接下来是求x的时候了:

    当p是素数的时候,

    由费马小定理,有a^p≡a(mod p),即a^(p-1)≡1(mod p),即a*a^(p-2)≡1(mod p)

    而我们知道ax%p=1,所以有x=a^(p-2)

    这个时候用快速幂加速得到x

    当p不是素数的时候,

    欧拉函数或者扩展gcd,

    未完待续。。。

  • 相关阅读:
    python-Beautiful rose
    python-and和 or用法
    myspl数据库基础
    python 协程
    python-os 模块
    python-logging模块
    异常处理
    面向对象-类中的三个装饰器
    Flask初见
    django中的ContentType使用
  • 原文地址:https://www.cnblogs.com/-maybe/p/4796259.html
Copyright © 2011-2022 走看看