定義:
滿足a*k≡1 (mod p)的k值就是a關於p的乘法逆元。
為什么要有乘法逆元呢?
當我們要求(a/b) mod p的值,且a很大,無法直接求得a/b的值時,我們就要用到乘法逆元。
我們可以通過求b關於p的乘法逆元k,將a乘上k再模p,即(a*k) mod p。其結果與(a/b) mod p等價。
證:(其實很簡單。。。)
根據b*k≡1 (mod p)有b*k=p*x+1。
k=(p*x+1)/b。
把k代入(a*k) mod p,得:
(a*(p*x+1)/b) mod p
=((a*p*x)/b+a/b) mod p
=[((a*p*x)/b) mod p +(a/b)] mod p
=[(p*(a*x)/b) mod p +(a/b)] mod p
//p*[(a*x)/b] mod p=0
所以原式等於:(a/b) mod p
滿足a*k≡1 (mod p)的k值就是a關於p的乘法逆元。
為什么要有乘法逆元呢?
當我們要求(a/b) mod p的值,且a很大,無法直接求得a/b的值時,我們就要用到乘法逆元。
我們可以通過求b關於p的乘法逆元k,將a乘上k再模p,即(a*k) mod p。其結果與(a/b) mod p等價。
證:(其實很簡單。。。)
根據b*k≡1 (mod p)有b*k=p*x+1。
k=(p*x+1)/b。
把k代入(a*k) mod p,得:
(a*(p*x+1)/b) mod p
=((a*p*x)/b+a/b) mod p
=[((a*p*x)/b) mod p +(a/b)] mod p
=[(p*(a*x)/b) mod p +(a/b)] mod p
//p*[(a*x)/b] mod p=0
所以原式等於:(a/b) mod p
