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

    转自:https://www.bilibili.com/video/BV12E411c7QH

     ≡

    一,引入

    (a+b)%p = (a%p + b%p) %p

      (a - b) %p = ( a%p + b%p) %p

      (a * b) %p = ( a%p * b%p) %p

      (a / b) %p = ( a%p / b%p) %p

    上式中,第四个是不成立的,即除法不存在逆元。这就让计算 (a / b) %p 变的十分复杂,

    因为:① 分配律的好处:可以在大数运算时候先取余让数变小,在进行加减乘运算

    ② 除法的弊端 :除法会掉精度

    于是就有人想出乘法的逆元来解决这个问题。

    二,

    定义:若在 mod p 的情况下,对于一个整数 a,有 a*x ≡ 1 (mod p),那么这个整数 x 即为 a 的

    乘法逆元,同时 a 也为 x 的乘法逆元   (  ≡ 表示 同余;(mod p) 表示  该式子在两边都 mod p 的情况下成立)

    充要条件:a 存在 mod p 的乘法逆元的充要条件是 gcd ( a , p ) = 1,即 a 与 p 互质。

    应用:求取 (a / b) %p。该值 等同与 a*(b 的逆元) % p

    证明:( a/b ) % p = a*(b 的逆元) % p 

    即证:设 b 的逆元 为 x.,则  b*x ≡ 1 ( mod p ),则可以把 x 认为是  b 在数论上的倒数,

    式子 ① :    (a / b) %p = m

    将 ① * b :    a%p = m * b %p,

    即 a ≡  m * b ( mod p )  .......式子②

    将 ② * x :    a * x  ≡ m * b * x  ( mod p )

    因为:b*x ≡ 1 ( mod p )

    所以:原式 = a * x  ≡ m ( mod p )

    得证。

    求 b 的逆元:费马小定理(p 为质数):在竞赛通常 p 为 质数,因为 p 不为质数时容易找到余数的规律。

    费马小定理:假如 a 是一个整数, p 是一个质数,那么

    1,如果 a 是 p 的倍数,a^p ≡ a (mod p)

    2, 如果 a 不是 p 的倍数,a^(p-1) ≡ 1 (mod p)

    同余式:a ≡ b (mod n) 表示 a,  b 都模 n 后的值相等

    因为 乘法逆元必须满足,a p 互质,所以只需要考虑第二种情况。

    由 2 可得:a * a^(p-2) ≡ 1 ( mod p )

    所以 a%p * (a^(p-2) % p) = 1 %p

    即 a^(p-2) % p 为 a 的逆元,其中 p-2 次方可用快速幂求解。

    总结:

      ( a/b ) % p = a*(a^(p-2) % p) % p 

    =========== ========== ========= ========= ======== ====== ==== === == =

    水调歌头·我饮不须劝 (宋)辛弃疾

    我饮不须劝,正怕酒尊空。别离亦复何恨,此别恨匆匆。头上貂蝉贵客,花外麒麟高冢,人世竟谁雄。一笑出门去,千里落花风。
    孙刘辈,能使我,不为公。余发种种如是,此事付渠侬。但觉平生湖海,除了醉吟风月,此外百无功。毫发皆帝力,更乞鉴湖东。

     

     

     

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/asdfknjhu/p/13752476.html
Copyright © 2011-2022 走看看