当前位置: 首页 > news >正文

059.同余与逆元

同余

加法同余

(a + b) % p = (a % p + b % p) % p

乘法同余

a * b % p = (a % p)*(b % p) % p

减法同余

(a - b) % p = (a % p - b % p + p ) % p

线性同余方程

  • 求x使得 ax = b (mod p)

  • 等价于求 ax + py = b 的一个解 x

除法同余与逆元

计算 a / b % p

b * x % p == 1gcd(b,p) == 1

则称 xb(mod p) 意义下的逆元

a / b % p = (a % p * x % p ) % p

下面是一些逆元的求法

费马小定理

  • 使用条件 p 为质数

b(mod p) 意义下的逆元为 b ^ (p-2)

typedef long long ll;
ll qpow(ll b,ll e,ll p){ll ans=1;b%=p;while(e){if(e&1)ans=ans*b%p;e>>=1;b=b*b%p;}return ans;
}
int inv(int b,int p){return qpow(b,p-2,p);
}

拓展欧几里得

  • 使用条件 a , b互质
int ex_gcd(int a,int b,int &x,int &y){if(b==0){x=1,y=0;return a;}int g=ex_gcd(b,a%b,y,x);y-=a/b*x;return g;
}
int inv(int b,int p){int x,y;ex_gcd(b,p,x,y);return (x%p+p)%p;
}

线性求连续数字逆元

const int N=1e8+5;int inv[N];
void built(int n,int p){inv[1]=1;for(int i=2;i<=n;++i){inv[i]=1LL*(p-p/i)*inv[p%i]%p;}
}

线性求阶乘逆元

const int N=1e5+5;ll qpow(ll b,ll e,ll p){ll ans=1;b%=p;while(e){if(e&1)ans=ans*b%p;e>>=1;b=b*b%p;}return ans;
}int f[N];//f[i]表示i!在(mod p)意义下的余数
int inv[N];//inv[i]表示i!在(mod p)意义下的逆元void built(int n,int p){f[1]=1;for(int i=2;i<=n;++i){f[i]=1LL*i*f[i-1]%p;}inv[n]=qpow(f[n],p-2,p);for(int i=n;i;--i){inv[i-1]=1LL*i*inv[i]%p;}
}
//(mod p)意义下的组合数
int C(int n,int m,int p){// n! / m! / (n-m)!int ans=f[n];ans=ans*inv[m]%p;ans=ans*inv[n-m]%p;return ans;
}
http://www.jsqmd.com/news/285620/

相关文章:

  • 消费品营销战略咨询公司怎么选?哪家靠谱?
  • 边界之内:为何高维内插无法催生下一次科学革命?
  • FastAPI系列(01):FastAPI介绍
  • php生成海报
  • VIZE SCADA-工业实时历史数据库-实时库
  • P14963 [LBA-OI R2 B] 何意味 题解
  • 从嵌入式系统到智能终端
  • 构建“不崩溃”的嵌入式系统:防御性编程
  • 《机器学习》第 7 章 - 神经网络与深度学习
  • 神奇的找实习经历
  • DeepX OCR:以 DeepX NPU 加速 PaddleOCR 推理,在 ARM 与 x86 平台交付可规模化的高性能 OCR 能力
  • 不花钱也可以招一个“清华实习生”帮你干技术活
  • 从零开始安装并配置开源AI编程神器OpenCode
  • 全志T113的触摸屏
  • 泰国海外仓如何精准履约?基于海外仓WMS的拣货防错解决方案
  • 2026年1月高效空气过滤器厂家推荐榜单:覆盖W型/板式/袋式/耐高温/无隔板等全品类,专业净化解决方案深度解析与选购指南
  • 1.22假期记录
  • uniapp 请求封装!Token 过期自动刷新+队列缓存!CV即用
  • 2026年1月深圳跨境电商财税服务厂家推荐榜:合规记账/税务筹划/风险规避/代理申报一站式解决方案深度解析
  • C#每日面试题-简述反射
  • 日程7
  • 【Redis典型应用——缓存详解】 - 指南
  • C#每日面试题-简述异常处理
  • 重庆明镜滩项目-11-脚本学习-260122DataPreV5MissAna2
  • James 个人介绍(用于企业数字化服务咨询)
  • 勾股定理简单学习
  • Spring Boot 三种方式登录系统:集成微信扫码、短信验证码、邮箱验证码
  • Oracle 19c入门学习教程,从入门到精通,Oracle 数据表对象 —— 语法知识点详解与案例实践(10)
  • Cadence推出人工智能语音助手Tensilica HiFi iQ DSP IP
  • 鸿蒙 HarmonyOS 6 | 系统能力 (04):构建专业级媒体应用 PhotoAccessHelper 与复杂媒体库管理