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

同余及乘法逆元

定义

若整数 \(a\) 于整数 \(b\) 除以整数 \(m\) 的余数相等,则称 \(a,b\)\(m\) 同余,记为:

\[a \equiv b \pmod{m} \]

同余类与剩余系

对于 \(\forall a\in [0,m-1]\),集合 \(\{x|x=a+km,k\in \Z\}\) 的所有元素模 \(m\) 同余,且余数都是 \(a\) ,则称该集合为一个模 \(m\)同余类,简记为 \(\overline{a}\)
\(m\) 的同余类一共有 \(m-1\) 个,分别为 \(\overline{0},\overline{1},\overline{2},\dots,\overline{m-1}\),这些共同构成 \(m\)完全剩余系
\(1 \sim m\) 中与 \(m\) 互质的数有 \(\varphi(m)\) 个,这些共同构成 \(m\)简化剩余系
并不知道这些东西对OI有什么用

同余式的性质

  1. 同加性 \(a \equiv b \pmod{m} \implies a+c \equiv b+c \pmod{m}\)
  2. 同减性 \(a \equiv b \pmod{m} \implies a-c \equiv b-c \pmod{m}\)
  3. 同乘性 \(a \equiv b \pmod{m} \implies ac \equiv bc \pmod{m}\)

but它好像并不满足同除性

\[a \equiv b \pmod{m}\nLeftrightarrow \frac{a}{c} \equiv \frac{b}{c} \pmod{m} \]

在我们计算模数的时候又不可避免地需要使用除法,这怎么办呢?

乘法逆元

数学家们无法接受这个事实,于是抛出了乘法逆元这个概念。

定义

\(\frac{b}{a}\bmod m = b\times c\bmod m\),则称 \(c\)\(a\) 在模 \(m\) 意义下的乘法逆元,记为 \(a^{-1}\),读作 a的逆可不要读成a的负一次方
可以发现乘法逆元很好地解决了同余式不满足同除性的问题。

求解

貌似并不是很好求的样子
如果 \(a^{-1}\)\(a\) 在模 \(m\) 意义下的逆元。
\(a\times a^{-1} \equiv 1 \pmod{m}\)

费马小定理

\(p\) 为质数,对于任意的整数 \(a\) 都有:

\[a^p \equiv a \pmod{p} \]

我们假设 \(a<p\),那么我们可以退出:

\[a^{p-1} \equiv 1 \pmod{p} \]

在进行一下变形:

\[a\times a^{p-2} \equiv 1 \pmod{p} \]

所以你就发现,\(a^{p-2}\) 正式 \(a\) 在模 \(p\) 意义下的一个逆元。
事实上用费马小定理求逆元是最常用的方法。

扩展欧几里得

还记得我在最大公约数 & 最小公倍数这篇文章中说过:

用于求解 \(ax+by=\gcd(a,b)\) 的一组整数特解,并可用于求解逆元和线性同余方程。

但当时我并没有说到具体怎么求逆元。
我们构建方程:

\[ax+my=\gcd(a,m) \]

\(\gcd(a,m)=1\) 则解出来的 \(x\) 就是 \(a^{-1}\),否则逆元不存在。
这种算法适合求解仅保证 \(a\)\(m\) 互质的情况

线性同余方程

中国剩余定理 (Chinese Remainder Theorem, CRT):

引入:

用于求解「物不知数」问题:

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?

就是求同时满足:除以 \(3\)\(2\),除以 \(5\)\(3\),除以 \(7\)\(2\) 的整数。
该问题最早见于《孙子算经》中,并有该问题的具体解法.宋朝数学家秦九韶于 1247 年《数书九章》卷一、二《大衍类》对「物不知数」问题做出了完整系统的解答。
摘自OI-wiki

定义:

对于上面的问题,可以写成同余方程组:

\[\left\{\begin{array}{l} x \equiv 2 \pmod{3}\\ x \equiv 3 \pmod{5}\\ x \equiv 2 \pmod{7} \end{array}\right. \]

而中国剩余定理正是求解模数互质的一元线性方程组:

\[\left\{\begin{gather*} x \equiv a_1 \pmod{m_1}\\ x \equiv a_2 \pmod{m_2}\\ \vdots\\ x \equiv a_n \pmod{m_n} \end{gather*}\right. \]

其中对于\(\forall i,j \in[1,n]\cap\N,i \neq j\) 满足 \(\gcd(m_i,m_j)=1\),即 \(m_i\)\(m_j\) 互质。
\(M=\prod_{i=1}^{n} m_i\)\(b_i=m/m_i\)\(t_i\)\(b_it_i\equiv 1\pmod{m_i}\) 的一个解,那么上述方程组的解为:

\[x=\sum_{i=1}^{n}{a_ib_it_i} \]

证明

因为 \(b_i=M/m_i\),即 \(b_i\) 是除 \(b_i\) 以外所有模数的倍数,所以 \(\forall j\neq i,a_ib_it_i \equiv 0\pmod{m_j}\)
又因为 \(b_it_i\equiv 1\pmod{m_i} \implies a_ib_it_i\equiv a_i\pmod{m_i}\),带入原方程 \(x=\sum_{i=1}^{n}{a_ib_it_i}\) 成立。

代码
int crt(int a[],int m[]){int M=1,ans=0;for(int i=1;i<=n;++i) M*=m[i];for(int i=1;i<=n;++i){int mi=M/m[i],ti,y;exgcd(mi,m[i],ti,y);ans=(ans+a[i]*mi*ti)%M;}return ans;
}
http://www.jsqmd.com/news/1219562/

相关文章:

  • 3步完成Blender动画GIF制作:Bligify插件完整指南
  • 终极指南:如何用ClearerVoice-Studio免费实现专业级AI语音处理
  • 每日精选GitCode开源好项目
  • TMS320F28003x DCSM安全模块:嵌入式代码保护的硬件级实现
  • OpenAI kbd-1.0-codex-micro AI键盘:本地化智能编程助手实践指南
  • 技术面试全攻略:从准备到实战的系统方法论
  • Photoshop图层批量导出终极指南:5倍速提升工作效率的完整教程
  • Android多APK适配方案:解决设备碎片化难题
  • 工现场安全检查、资料检查要点,收藏备用!
  • 20260719
  • mui.openWindowWithTitle()方法详解与移动端窗口管理实践
  • 8GB显存也能流畅生成AI视频:ComfyUI-FramePackWrapper完整指南
  • 乐山市犍为县黄金回收白银回收铂金回收彩金回收门店优选+联系方式推荐_转自TXT - 余情未了888
  • learnr:R语言交互式教程的终极指南 - 从零开始创建动态学习体验
  • ApowerMirror投屏技术解析与优化实践
  • Java集合框架:List与Set实现原理与性能对比
  • (十)在50块钱的芯片上做视频推流:H.264硬件编码+RTSP实战
  • 分立器件搭建三相电机驱动电路:从原理到实践完整指南
  • 如何快速安装REPENTOGON:面向新手的《以撒的结合》脚本扩展器终极配置指南
  • 湖北正规医护中专推荐:武汉助产学校 2026 更新招生电话,护理助产专业实力过硬 - Luckyone王
  • 可灵AI互动投票系统:实时剧情分支生成与观众决策技术解析
  • ARM实验箱捕鱼游戏开发全流程解析
  • 首批入板!探码科技入选四川省专精特新专板规范层企业
  • Axure RP中文界面终极指南:快速免费汉化完整攻略
  • 嵌入式自学指南:从基础到实战的系统学习路径与避坑技巧
  • 安卓高性能编程实战:优化工具与关键策略
  • ComfyUI破限版全解析:中文界面优化与显卡适配实战指南
  • 惠州市龙门县黄金回收白银回收铂金回收彩金回收门店优选+联系方式推荐_转自TXT - 余情未了888
  • 2026年7月最新沈阳劳力士官方售后热线及客户服务网点地址 - 劳力士官方服务中心
  • Stream Deck与Codex结合:自然语言驱动的开发自动化实践