- 我在做bzoj1004时看了别人的题解,需要用到一个叫逆元的玩意儿,查看了许多资料,决定写一个易懂的解析。
- 假设我们要求(a*b/d)%p的值。
- 但是a*b会爆long long.
- 那我们很希望把/d换成乘某个数,这样就可以边乘边模对吧。
- 那么,在%p条件下,除d等于乘d的逆元。
- 我们称inv(x,y)为x在%y条件下的逆元。
- 举个例子,3为2在%5意义下的逆元,即inv(2,5)=3。
- 那么 (a/2) % 5 =( a*inv(2,5) ) % 5 = ( a*3 ) % 5。
- 举个例子,2=(24/2)%5=(24*inv(2,5))%5=(24*3)%5=2。
- 这就是逆元了。那么如何求出逆元?这里给出一个基本的方法(本人也在学习新方法)。
- 已知a与p,此时满足a*b%p=1的最小的b即为a在%p条件下的逆元,inv(a,p)=b。