预防针:本文排版很乱,介绍概念时并不专业(不过能用就好了)
这里有专业的讲解,但是我不怎么看的懂就是了:https://blog.csdn.net/xiaoming_p/article/details/79644386
Part I 概念介绍:
我们想要(A/B)%P,其中A,B代表一个式子,因此可能本身A,B就超过自己的数据范围,都爆了,还怎么除呢?
我们能想到的是(A%P)/(B%P)%P (A%P具体举栗子就是A = a*b,然后(a%P)*(b%P)%P)
不过这样算出来的答案是错误的,很明显啦,因为是除法呀。(总的来说我讲不清)
所以我们用乘法做,乘法各自取模再相乘是不会出错的。
(A%P)*((1/B)%P)%P
但是很明显1/B是个小数啊。。。
所以我们要找一个数X,使得A*X%P = (A/B)%P
X就是B 在 模 P 下的逆元
Part II:逆元的求法
① 利用一个结论:(适用于P是质数)