逆元

参考于此篇博客:https://www.cnblogs.com/kongbursi-2292702937/p/10582258.html

逆元定义:

对于a*b≡1(mod m),b是a在模m下a的逆元。

首先对于同余符号≡,如 a≡b%m 表示的意思是a%m=b%m,a、b模m后余数相同。

逆元可以看作一个数的倒数 c * b≡1(mod m)(b为c的逆元)
可得(a/c)%m=(a*b)%m
推导过程:(a/c)%m=(a/c)*1%m=(a/c) * c * b%m=(a * b)%m

由费马小定理:a、m是互质的正整数,有a^(m-1)≡1(mod m)
可得:a的逆元为:a^(m-2)
推导过程:a^(m-1)≡1(mod m)=a*a^(m-2)≡1(mod m),由逆元定义可得 a逆元=a^(m-2)
其实就是转变为通过快速幂找到逆元。

快速幂板子(Mod还要自己定义个全局变量)

ll qpow(ll a, ll b) {
   
	ll ans = 1, base = a;
	while (b) {
   
		if (b & 1) ans = ans * base % Mod;
		base = base * base % Mod;
		b >>= 1;
	}
	return ans;
}

逆元常运用于组合数:https://blog.csdn.net/asbbv/article/details/111321575

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务