• 进阶数论(1)逆元


        [背景]

        我们知道根据随时取模原理(a*b)mod p=( a mod p*b mod p)mod p。那么对于除法有没有(a/b)mod p=( a mod p/b mod p)mod p这个性质呢?很显然是没有的。这个时候,我们就有必要引入逆元这个概念。

        

        [概念]

        我们想,如果可以把(a/b)mod p转化为(a*k)mod p就可以运用随时取模。那么这个k就是b在模p意义下的逆元(b,p字母含义在本篇文章通篇适用),简写为inv(b)。

          

        [求逆元]

    那么对于一个数b,它的逆元时多少呢?我们可以类比倒数来解决这一问题。倒数的定义是这样的:一个数除以另一个数,就相当于乘这个这个数的倒数。如5/6=5*(1/6),(1/6)就是6的倒数。对于一个数有

    a*(a的倒数)=1

        类比一下

    b*inv(b)≡1(mod p)

        此时我们如果想要知道k的值,我们需要再引入费马小定理:如果p是一个质数,而整数a不是p的倍数,则有

    a^(p-1)≡1(mod p)

        那么有

    b*b^(p-2)≡1 (mod p)

        那么

    inv(b)≡b^(p-2)(mod p)

        有了这个等式,我们可以轻松用快速幂求得inv(b),但是我们还可以用扩展欧几里得来求逆元。但是由费马小定理的前提可得b和p互质。也就说明如果b和p不互质,则b没有在模p意义下的逆元,这在用扩展欧几里得中也是一个非常重要的前提。

        

    2019-05-02 19:12:48

  • 相关阅读:
    ant desigon Upload控件能否提供隐藏删除图标的属性以及鼠标停留在删除图标上的提示文字怎么设置为中文
    2月5日进度
    2月4日学习进度
    2月3日学习进度
    2月2日学习进度
    大数据之linux环境下jdk hadoop以及hbase,hive等配置
    MVC实例
    MVC简介
    23种设计模式
    xxx系统可用性和易用性分析
  • 原文地址:https://www.cnblogs.com/zjd-ac/p/10803108.html
Copyright © 2020-2023  润新知