数论-同余与扩展欧几里得详解(附例题及代码)
博客园
2023-08-21 17:19:16
数论-同余与扩展欧几里得详解(附例题及代码)
注意:这篇文章的信息量会有一点多,请耐心看完
一.同余1.1 同余的定义给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)
(相关资料图)
简单来说,对于x,y,若x%p=y%p,即x,y对于p的余数相同,则称为同余
1.2 同余的性质本身不重要,但我们可恶的教练让我们背下来
于是摆烂…………………………
实在是不想码出来(懒)
假设a是一个整数,p是一个质数,则有以下定理
\(a^{p-1}\)≡1(mod p)
证明方法:出门左转,百度(点击有惊喜)欢迎您
p为质数,则有\(a^{p-1}\)≡1(mod p)
则不难推出:\(a^{p-2}\)*a≡1(mod p)
所以,\(a^{p-2}\)就是a再在%p意义下的逆元
2.2欧拉定理2.2.1欧拉定理简介\(a^{φ(p)}\)≡1(mod p)(即为费马小定理的一般形式)
φ(p)为欧拉函数,不清楚的请出门左转见百度
2.2.2费马小定理求解逆元推理:\(a^{φ(p)-1}\)*a≡1(mod p)
所以\(a^{φ(p)-1}\)就是a在%p意义下的逆元
2.2.3代码实现long long ksm(long a,long p,long long mod){//快速幂 long long t=1,x=a%mod;while(p){if(p&1) t=t*x%mod;x=x*x%mod;p>>1;}return t; } long long getinv(long long a,long long mod){//inv一般表示逆元 return ksm(a,mod-2,mod); }
2.3递推求解逆元(相信你十分了解递推)2.3.1推理过程p为模数,a为待求逆元(先设出来),所以\(a^{-1}\)是a在模p意义下的逆元
责任编辑:235
热点新闻