數字2的乘法逆元
快捷計算方式如下
inv2=mod-mod/2;
推導如下
摘自奇質數是既是奇數又是質數的數
2是唯一的偶質數,簡而言之,以下推導對p=2不適用,其它質數都適用。
對上式的補充說明:
k=m%i=m-m/i*i
t*i=m/i*i
t*i+k=m/i*i+m%i=m/i*i+m-m/i*i=m,請注意m%m=0
對上式的補充說明:
inv[i]=(-m/i)*inv[m%i]%m
進一步處理
注意:m*inv[m%i]%m=0
inv[i]=(-m/i)*inv[m%i]%m+m*inv[m%i]%m
inv[i]=(m-m/i)*inv[m%i]%m
typedef long long ll;
const int n = 1e5 + 5;
int inv[n];
void inverse(int n, int p)
}
乘法逆元及逆元求法
模運算 取餘運算,即a除以b得到的餘數,記為mod,又記為 模運算過程中,加減乘都可以先對a,b進行 p,然後再進行加減乘,最後再 p,結果不變 運算子優先順序,模運算和乘除法的運算子優先順序是一樣的 同餘 a和b除以p得到的餘數相同,即p可以整除 a b 求解 cfrac mod p 的值,因為除...
模板 乘法逆元
適用 求某乙個數在模意義下的乘法逆元。如果a p互質,那麼有ap a就是p的倍數,所以有ap a modp ap 1 1 modp 所以只要打乙個快速冪就ok了。code include using namespace std int n,p int power int x,int k return...
模板 乘法逆元
這是一道模板題 給定n,p求1 n中所有整數在模p意義下的乘法逆元。輸入格式 一行n,p 輸出格式 n行,第i行表示i在模p意義下的逆元。輸入樣例 1 複製10 13 輸出樣例 1 複製179 108112 534 1 n 3 106,n1 n 3 106,n輸入保證 p p p 為質數。先扔個線性...