信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)
课程目标
- 理清脉络:理解同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算之间的逻辑关系。
- 掌握核心:熟练运用扩展欧几里得算法求解不定方程及逆元。
- 实战应用:能够解决相关的数论模板题和简单变式题。
第一部分:知识地图与衔接逻辑
这五个知识点可以看成是一条“生产流水线”,最终目的是为了解决“分数取模”这个看似复杂的问题。
起点:同余
- 这是所有问题的背景。我们研究的世界不再是整数,而是“模 m 的世界”。在这里,所有的数都只关心它除以 m 的余数。
- 核心矛盾:在这个世界里,加法、减法、乘法都很好用,唯独除法不成立(例如4 / 2 m o d 6 4/2 \ mod \ 64/2mod6不等于( 4 m o d 6 ) / ( 2 m o d 6 ) (4 mod 6)/(2 mod 6)(4mod6)/(2mod6)。
- 我们要解决的问题就是:如何在模世界里做除法?
工具1:裴蜀定理
- 为了在模世界里做除法,我们遇到了一个方程:a x ≡ 1 ( m o d m ) a x \equiv 1 \ (mod \ m)ax≡1(modm)。这相当于在整数中找 a x + m y = 1。
- 裴蜀定理告诉我们,这个方程有解的前提是 gcd(a, m) = 1 (互质)。它给了我们“解存在的条件”。
工具2:扩展欧几里得算法
- 既然条件满足了,那具体怎么解 a x + m y = gcd(a, m) 这个方程呢?
- 扩展欧几里得算法就是我们用来求解这个方程的“计算器”。它不仅能求出最大公约数 d ,还能顺便求出一组整数解 (x, y) 。
产物1:乘法逆元
- 我们利用扩展欧几里得求解 a x + m y = 1 ,解出的 x 就是 a 在模 m 意义下的乘法逆元,记作a − 1 a^{-1}a−1。
- 它的意义:在模世界里,a − 1 a^{-1}a−1就是 ( 1/a )。因为a × a − 1 ≡ 1 ( m o d m ) a \times a^{-1} \equiv 1 \ (mod \ m)a×a−1≡1(modm)。
产物2:分数模运算
- 有了逆元这个工具,除法问题就迎刃而解了。
- 计算b a ( m o d m ) \frac{b}{a} \ (mod \ m)ab(modm),
- 就等于计算b × a − 1 ( m o d m ) b \times a^{-1} \ (mod \ m)b×a−1(modm)。
- 至此,我们成功地在模世界里实现了除法!
知识流程图:同余背景 (遇到除法难题)
⬇引出线性同余方程 ax ≡ 1 (mod m)
⬇裴蜀定理 (判断是否有解: gcd(a,m)=1)
⬇扩展欧几里得算法 (求解方程 ax + my = 1)
⬇得到乘法逆元 x (a⁻¹)
⬇解决分数模运算 b/a ≡ b * a⁻¹ (mod m)
更多系列知识,请查看专栏:《信奥赛C++提高组csp-s知识详解及案例实践》:
https://blog.csdn.net/weixin_66461496/category_13113932.html
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}1、csp信奥赛高频考点知识详解及案例实践:
CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转
CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转
信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html
2、csp信奥赛冲刺一等奖有效刷题题解:
CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转
信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新)
https://blog.csdn.net/weixin_66461496/category_13125089.html
3、GESP C++考级真题题解:
GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转
GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转
GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html
4、csp/信奥赛C++,完整信奥赛系列课程(永久学习):
https://edu.csdn.net/lecturer/7901 点击跳转
· 文末祝福 ·
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}