乘法逆元.md

乘法逆元.md

tk_sky 150 2022-09-03

数学上乘法逆元的定义是 $$ax=1,则x是a的乘法逆元$$。

我们这里讨论关于取模运算的乘法逆元。

定义:

满足 $$ax\mod b = 1$$时,称 $$x为a关于模b的逆元$$。

所以逆元有什么用呢?

题目中可能会出现操作中间树很大的情况,如求解:

$$3 * 6 / 3 \mod 7$$

规定中间变量不能超过7,于是操作步骤为:

$$原式 = ((3*6)\mod 7)/3 \mod 7$$

$$= 4/3$$

发现无法整除。

可以求出除数3关于模数7的逆元为5,根据定义,在7模数下,3 * 5 = 1,所以1/3 = 5.

于是我们可以把$$/3$$替换成$$5$$,避免了无法整除的问题。

于是问题来到了如何求逆元。

费马小定理:

$$a^ \mod b = 1$$

改写一下:

$$a^ * a\mod b = 1$$

所以 $$a^$$ 就是a模b的逆元。一般这个数用快速幂来算。