乘法逆元專題
阿新 • • 發佈:2021-08-28
正常求逆元
由費馬小定理
\[a^p\equiv a\pmod{p} \quad p\in prime \]得:
\[a^{p-2}\equiv \dfrac{1}{a}\pmod{p} \]之後稱 \(a\) 關於模 \(p\) 的乘法逆元為 \(inv(a)\)
求 \(inv(a)\) 的時間複雜度為 \(O(\log p)\) (快速冪)
線性求 \(inv(i) \ (1\leqslant i\leqslant n)\)
即要 \(O(1)\) 在已知 \(inv(j) \ (1\leqslant j\leqslant i-1)\) 的前提下求 \(inv(i)\)
推導:
將 \(p\)
得
\[\left\lfloor\dfrac{p}{i}\right\rfloor\times i+p\%i\equiv 0\pmod{p} \]兩邊同乘 \(inv(i)\times inv(p\%i)\),得
\[\left\lfloor\dfrac{p}{i}\right\rfloor\times inv(p\%i)+inv(i)\equiv 0\pmod{p} \]即
\[inv(i)\equiv -\left\lfloor\dfrac{p}{i}\right\rfloor\times inv(p\%i)\pmod{p} \]其中 \(inv(p\%i)\)
線性求 \(inv(i!) \ (1\leqslant i\leqslant n)\)
先求出 \(inv(n!)\),之後
\[inv(i!)=inv((i+1)!)\times (i+1) \ (1\leqslant i\leqslant n-1) \]就結束了~
當然這個也可以配合 \(i! \ (0\leqslant i\leqslant n-1)\) 匯出 \(inv(i) \ (1\leqslant i\leqslant n)\) 的取值,也就是
\[inv(i)=inv(i!)\times (i-1)! \ (1\leqslant i\leqslant n) \]本文作者為小蒟蒻: zhangshaojia
轉載請註明原文連結。
碼字不易,求關照,謝謝!