逆元

参考于此篇博客: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

全部评论

相关推荐

2024-12-30 21:47
已编辑
北京化工大学 Python
今天刚面完hr面,hr说签了三方(别家的)不敢保证你会来字节吧啦吧啦的,最后也谢谢我的时间了,所以这是挂了吗?hr面会挂人吗?
码农索隆:发了也不一定去,去了也不一定过试用期,试用期过了也不一定一直干,一直干也不一定不会被开,,所以,顺其自然吧
点赞 评论 收藏
分享
2024-12-09 17:26
重庆大学 硬件开发
安全劝退第二人:给我发个
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务