数论倒数,又叫逆元
逆元有什么用呢?
大家都知道
(a+b)%p=(a%p+b%p)%p
(a-b)%p=(a%p-b%p)%p
(a*b)%p=(a%p * b%p)%p
以上操作都是对的
唯独到了除法不可以
比如:(8/2)%6=4!=(8%6)/(2%6)=1
对于有些题目需要中间过程取余,否则会超存储范,所以这时候就需要逆元了
逆元的定义:
方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。
逆元的含义:
模n意义下,1个数a如果有逆元x,那么除以a相当于乘以x。
假如b的逆元用inv(b)来表示,那么(a/b)%p就可以转化为(a*inv(b))%p
逆元的三种求法:
1.费马小定理:
假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p),即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。
a^(p-1) ≡ 1 (mod p)
a*a^(p-2) ≡ 1 (mod p)
a^(p-2)就是a关于p的逆元
求 a^(p-2)我们就可以使用快速幂得到