欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【同余定理+逆元】知识点讲解

程序员文章站 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:我们会好好的!

相关标签: 逆元