数学上乘法逆元的定义是 ax=1,则x是a的乘法逆元。
我们这里讨论关于取模运算的乘法逆元。
定义:
满足 axmodb=1时,称 x为a关于模b的逆元。
所以逆元有什么用呢?
题目中可能会出现操作中间树很大的情况,如求解:
3∗6/3mod7
规定中间变量不能超过7,于是操作步骤为:
原式=((3∗6)mod7)/3mod7
=4/3
发现无法整除。
可以求出除数3关于模数7的逆元为5,根据定义,在7模数下,3 * 5 = 1,所以1/3 = 5.
于是我们可以把/3替换成5,避免了无法整除的问题。
于是问题来到了如何求逆元。
费马小定理:
ab−1modb=1
改写一下:
ab−2∗amodb=1
所以 ab−2 就是a模b的逆元。一般这个数用快速幂来算。