【同余定理+逆元】知识点讲解
程序员文章站
2022-07-13 13:47:45
...
【同余的定义】:
【同余的主要性质】:
性质证明:
【逆元】
(1)定义:
【费马小引理求解逆元】:
代码实现:
long long quickpow(long long a,long long b){
if(b<0) return 0;
long long ret=1;
a%=mod;
while(b){
if(b & 1 ) ret = ( ret *a ) % mod
b>>=1;
a = (a * a)% mod;
}
return ret;
}
long long inv(long long a){
return quickpow(a,mod-2);
}
【扩展欧几里得算法求逆元】:
(1)欧几里得算法基本介绍:
(2)扩展欧几里得算法的证明:
(3)求解逆元:
(4)代码实现:
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{ //推理,终止条件1
x=1;
y=0;
return a;
}
int t=exgcd(b,a%b,x,y)
int t=x;
x=y;
y=t-(a/b)*y;
return r; 最大公约数
}
下面再贴一种求解逆元的方法。
【递推法求解逆元】:
代码实现:
LL inv[maxn];
void Prepare_inv(int n,int M){
int[1]=1;
for(int i=2;i<=n;i++){
inv[i]=(long long)(M-M/i)*inv[M%i]%M
}
}
ps:我们会好好的!
上一篇: P4414 [COCI2006-2007#2] ABC (JAVA)
下一篇: 求逆元的几种办法