算法中的数学:费马小定理
1.同余式
定义:如果两个整数a,b模p的余数相同,那么a,b就是模p的同余式
记作:
性质:
1.同加性:若a和b同时加一个整数,那么他们加完之后的两个数模p仍为同余式
2.同乘性:若a和b同时乘一个整数,那么他们乘完之后的两个数模p仍为同余式但是他并不满足同除性
2.费马小定理
定义:若p为质数且a,b互质,那么
也就是说a^p-1%p == 1
3.乘法逆元
若a,b互质,且满足ax % b == 1,那么称x为a模m的乘法逆元,记作a^-1.
eg: a == 3 , b == 2,此时x == 1/3/....
那么1/3/...等数就叫3模2的乘法逆元
应用场景:
当我们需要计算(a/b)%c的时候,如果a可被b整除,那么我们可以正确得到结果,但是如果我们的a无法被b整除,此时直接先计算除法就会吹出现精度丢失的问题而乘法逆元可以很好的解决这个问题:
所以我们只要求出a模c的乘法逆元来替换b^-1次方即可
疑问:如何求乘法逆元?
答:费马小定理+快速幂当c为质数,且a,c互质的时候,我们可以用费马小定理