zoukankan      html  css  js  c++  java
  • 乘法逆元

    基于模运算和同余定理的知识(取模运算+同余定理

    定义:若ax≡1 mod p, 且gcd(a,p)=1(a与p互质),则称a关于1模p的乘法逆元为x。也可表示为ax≡1(mod p)。

               当a与p互质时,a关于模p的乘法逆元有解。如果不互质,则无解。如果p为质数,则从1到p-1的任意数都与p互质,即在1到p-1之间都恰好有一个关于模p的乘法逆元。

               比如5和14,易知5和14互质(公约数只有1的两个整数),那么可以求出5关于1模14的乘法逆元为3 。


      百度中有:

    求5关于模14的乘法逆元:
    14=5*2+4
    5=4*1+1
    说明5与14互素,存在5关于14的乘法逆元。
    1=5-4=5-(14-5*2)=5*3-14
    因此,5关于模14的乘法逆元为3。
     
    说一下乘法逆元的求法:
    1.费马小定理求逆元:
     
    费马小定理:假如 a是一个整数, p是一个质数,那么 ap − a 是p的倍数,可以表示为 a≡ a ( mod p ) ;

    如果a不是p的倍数,这个定理也可以写成  ap-1 ≡ 1 ( mod p )  ;

    由费马小定理 ap-1≡1(mod p) , 变形可以得到 a*ap-2≡1(mod p),那么,因为a*ap-2≡1(mod p)且a*x≡1(mod p),则x=ap-2(mod p),用快速幂可快速求之.

    2.扩展欧几里得定理求逆元(具体看欧里几德定理及其扩展)

       ax≡1 (mod p)即由此定理可得ax-yp=1.把y写成+的形式就是ax+py=1,为方便理解下面我们把p写成b就是ax+by=1。就表示x是a的模b乘法逆元,y是b的模a乘法逆元。然后就可以用扩展欧几里得求了。

     
  • 相关阅读:
    WSDL
    对协程的理解
    调用webServer
    待看
    BZOJ4668 冷战(并查集)
    BZOJ4651 NOI2016网格(割点)
    Lyft Level 5 Challenge 2018
    BZOJ3073 PA2011Journeys(线段树+bfs)
    BZOJ4602 SDOI2016齿轮(搜索)
    BZOJ4597 SHOI2016随机序列(线段树)
  • 原文地址:https://www.cnblogs.com/theshorekind/p/12785710.html
Copyright © 2011-2022 走看看