星星之火

逆元

一.欧几里德法求逆元

定理:对于方程$ax+by=1$,得到解x y,x就是a关于b的逆元,同理y就是b关于a的逆元

如何证明呢?

如下:

已知方程$ax+by=1$

在等式两边同时模b,得:

得$ax≡1(mod b)$

证毕

二.费马小定理求逆元

根据费马小定理,$a^{p-1} \equiv 1 \,\  ( \mod p)$ p为质数,任意的$1<=a<p$满足

接下来在左右两边同除以a

$$a^{p-2}≡a^{-1} \,\ (\mod p)$$

$$inv(a)=a^{-1}=a^{p-2} \,\ mod \,\ p$$

3.线性推逆元

设$p=ki+r,i<p,0<=r<i$

于是我们有$ki+r \equiv 0 \,\ (\mod p)$

左右同时乘上$i^{-1},r^{-1}$,得到

$$kr^{-1}+i^{-1} \equiv 0 \,\ (\mod p)$$

$$i^{-1} \equiv -kr^{-1} \,\ (\mod p)$$

$$i^{-1} \equiv -\lfloor \frac{p}{i} \rfloor (p \mod i)^{-1} \,\ (\mod p)$$

$$inv(i)=-\lfloor \frac{p}{i} \rfloor inv(p \,\ mod \,\ i)$$

注意到逆元是正数,我们还需要转化为在模意义下的正数形式

posted @ 2018-06-08 09:52  星星之火OIer  阅读(127)  评论(0编辑  收藏  举报