1.线性
ll inv[N]; void init(ll p) { inv[1]=1; for(ll i=2;i<N;i++) inv[i]=(p-p/i)*inv[p%i]%p; }
2.费马小定理:当模数是素数,a^(p-1)=1(mod p) 那么a^(p-2)=a^-1(mod p) ,也就是说a的逆元为a^(p-2),
当模数不是素数,有欧拉定理 ,a^phi(m)=1(mod m) (a⊥m) ,同理a^-1=a^(phi(m)-1)
Posted walfy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆元板子相关的知识,希望对你有一定的参考价值。
1.线性
ll inv[N]; void init(ll p) { inv[1]=1; for(ll i=2;i<N;i++) inv[i]=(p-p/i)*inv[p%i]%p; }
2.费马小定理:当模数是素数,a^(p-1)=1(mod p) 那么a^(p-2)=a^-1(mod p) ,也就是说a的逆元为a^(p-2),
当模数不是素数,有欧拉定理 ,a^phi(m)=1(mod m) (a⊥m) ,同理a^-1=a^(phi(m)-1)
以上是关于逆元板子的主要内容,如果未能解决你的问题,请参考以下文章