乘法逆元及逆元求法
阿新 • • 發佈:2021-01-02
###前置知識
>模運算:取餘運算,即a除以b得到的餘數,記為mod,又記為%
>模運算過程中,加減乘都可以先對a,b進行%p,然後再進行加減乘,最後再%p,結果不變
>運算子優先順序,模運算和乘除法的運算子優先順序是一樣的
>同餘:a和b除以p得到的餘數相同,即p可以整除(a-b)
###乘法逆元的問題背景
>求解$\cfrac{a}{b} \mod p$的值,因為除法不能直接對a,b先取模再進相除,所以這邊就引入了逆元
逆元,可以理解為是在mod p意義下b的倒數,下文中將b的逆元記錄為inv[b]
以下是逆元的定義
$b \times inv[b] \equiv 1 \pmod p$
###逆元的性質及其證明
**1.第一個性質**
$\cfrac{a}{b} \equiv a \times inv[b] \pmod p$
證明如下
$b \times inv[b] \equiv 1 \pmod p$
$(b \times inv[b]-1)\bmod p=0$
由模運算的乘法性質$a \times b \bmod p=(a \bmod p) \times (b \bmod p)\bmod p$
得到$\cfrac{a}{b}\times(b \times inv[b]-1)\bmod p=0$
$(a \times inv[b]- \cfrac{a}{b})\bmod p=0$
$a \times inv[b] \equiv \cfrac{a}{b} \pmod p$
**2.唯一性**
設b有兩個逆元c,d
則$a*c \equiv a*d \pmod p$
$(a*c-a*d)\pmod p=0$
$a(c-d) \mod p=0$
$a\% p \neq 0$
由模運算的乘性質得到$c=d$
所以b的逆元唯一
**3.可積性**
$inv[a] \times inv[b]=inv[a \times b]$
證明
$a*b * inv[ab]\equiv \pmod p$
又因為$a*inv[a]\equiv 1$
$b*inv[b]\equiv 1$
模運算乘性質易證可積性成立
**4.週期性**
求解$\cfrac{a}{b} \mod p$中b的逆元
一般預設b小於p,但是當b大於p的時候來求逆元,其實就是一個週期性
即$inv[k*p+r]=