逆元

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

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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