逆元

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

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
04-13 18:10
门头沟学院 Java
想熬夜的小飞象在秋招:被腾讯挂了后爸妈以为我失联了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务