【乘法逆元】簡單說說乘法逆元的求法


乘法逆元

一、定義

  若在mod p意義下,對於一個整數a,有a*b≡1(mod p),那么這個整數d即為a的 乘法逆元,同時a也為d的乘法逆元

二、求法

  (1).費馬小定理

    當p為質數時,對於任意整數a,滿足ap-a是p的整數倍

    在mod p意義下可以表示為

      ap-a≡0(mod p)

      即為ap≡a(mod p)

      所以ap-1≡1(mod p)

      即為a*ap-2≡1(mod p)

    所以ap-2即為a在 mod p 意義下的逆元

  (2).擴展歐幾里得

    ax≡1(mod p)可以轉化成ax+py=1的形式

    那么顯然我們可以用擴展歐幾里得算法解2元一次方程解出x

    擴展歐幾里得算法請戳這里~

  (3).O(n)遞推1~n的逆元

    

    我們就可以做到O(n)遞推

    inv[i]=(p-p/i)*inv[p%i]%p;

    從某個dalao博客里盜的圖欸嘿嘿

  (4).O(n)求階乘的逆元

    我們假設有x使得 a!x≡1(mod p)

    則(a-1)!*ax≡1(mod p)

    所以說(a-1)!的逆元為 ax%p

    那么我們就可以先求出n!的逆元再倒推回去

  (5).歐拉定理

    由aφp(mod p)aφp1是a的逆元 
    模數不是素數時同樣適用

  (6).一個小推論

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

      證明:

      (a/b)%p=a/b-⌊(a/b)/p⌋*p

           =a/b-⌊a/(b*p)⌋*p

           =a/b-⌊a/(b*p)⌋*b*p/b

           =(a%(bp) )/p

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM