1. 程式人生 > >線性求逆元的算法

線性求逆元的算法

span class 介紹 floor 求逆 方法 lin spa inline

本文介紹\(O(n)\)處理\([1, n]\)在模\(P\)意義下的逆元的方法。

結論

\[inv_i \equiv -\lfloor \frac{P}{i} \rfloor * inv_{(P \bmod i)} \pmod P\]


證明

現在要求\(i\)的逆元:

\(a = \lfloor \frac{P}{i} \rfloor, b = P \bmod i\),則

\[a * i + b \equiv 0 \pmod P\]
\[-a * i \equiv b \pmod P\]

等式兩邊同除\(i * b\)

\[-a * inv[b] = inv[i]\]

\(a = \lfloor \frac{P}{i} \rfloor, b = P \bmod i\)

代入上式得

\[inv_i \equiv -\lfloor \frac{P}{i} \rfloor * inv_{(P \bmod i)} \pmod P\]

線性求逆元的算法