模逆元
Summary
若 ax 模 p 等于 1,则 x 是 a 在模 p 意义下的逆元,记作 a 的负一次方。给出三种求法。快速幂法基于费马小定理,p 为质数时逆元等于 a 的 p−2 次方;扩展欧几里得法解不定方程 ax+py=1 得到逆元,适用于模数与 a 互质的一般情形;线性逆元由 p mod i 的同余变形,推出 i 的逆元关于 (p mod i) 逆元的递推式,在 O(n) 内批量求出前若干个逆元。
参考资料
定义
如果线性同余方程 ,则 称为 在模 意义下的 逆元(Inverse),记为 。
快速幂法
根据费马小定理(Fermat's Little Theorem):
快速幂:Pow(a,mod-2)。
详见 快速幂。
扩展欧几里得算法
如果 ,说明存在整数 满足 。
扩展欧几里得算法:exgcd(a,mod)。
详见 最大公约数。
线性逆元
ll inv[N];
void init()
{
for(int i=1;i<N;i++)
{
inv[i]=i==1?1:(mod-mod/i)*inv[mod%i]%mod;
}
}