初等数学瞎扯Ⅰ:同余相关
1|00. 基本定义
-
整除:若对于
且 ,有 ,则我们称 整除 或 被 整除,记作 ,否则我们称 不整除 或 不被 整除,记作 。 -
同余:若对于
且 ,有 ,则称 与 在模 意义下同余,记作 ,否则称 与 在模 意义下不同余,记作 。本文中不会特别区分 和 ,故可能存在混用情况,望见谅。 -
质数集:质数的集合,记作
-
最大公约数:对于两个数
,我们称数字 是 的最大公约数当 是整除 的最大整数,记作 ,简记为 。 -
互质:两个数
互质当且仅当 ,记作 。 -
质因子次数符号:把
分解质因数后数字 的幂次记作 -
各位数之和符号:在
进制下的数 各位数字的和记作 ,例如, 。 -
完系与缩系:对于一个数
,我们称一个集合 是完系,当且仅当 。我们称一个集合 是缩系,当且仅当 。
2|01. 常见定理
2|11-1. 费马小定理
先给出两个引理。
引理 1:当
是质数时,其因子只有 和 两个。因此,若两个数相乘是 的倍数,其中必然至少有一个是 的倍数。 引理 2:对于
,则 。
考虑反证,若
引理二的另一表述为,对于
所以,对于
2|21-2. 欧拉定理
考虑将费马小定理推广到非素数的形式。首先我们试图将引理 1 推广到更一般的形式。
引理 1 拓展:若
且 ,则 至少有一个与 不互质。
我们设在
引理 2 拓展:对于
,则 。
证明同上。对应的另一表述为,对于
那么此时仿照上文,有
关于欧拉函数,详见 初等数学瞎扯Ⅲ:数论函数与筛法,这里不再赘述。
2|31-3. 威尔逊定理
下文中,若无特殊说明,默认
1-3-1. 基本威尔逊定理
。
说人话,
为证明上式,先证明一个引理。
引理 1:若
在模 意义下逆元为 ,则 在模 意义下逆元为 。
证明:由已知,
另外可以注意到,若
你可能会说,这么看来,
但这还没完,上面只说明了必要性,下面来证明充分性。考虑大力分讨。
- 若
为完全平方数且 ,设 ,则 与 存在与 中,故 。 - 若
为合数且不是完全平方数,设 ,则 与 存在与 中,故 。 - 若
, 。
得证。
所以你如果想求一个数是不是 4,你可以大力计算阶乘然后判断取模后是不是 2。
1-3-2. 威尔逊定理扩展
我们考虑一种修正阶乘,记作
首先试图把原式展开
然后用威尔逊定理的普通形式代入,得到原式变为
注意到剩下的东西也是修正阶乘的形式,即为
那么对于任意正整数 尽管这看起来没啥大用。
1-3-3. 威尔逊定理的其它拓展
求
,在这里模数是 。
首先考虑
考虑
综上,可得出如下结论
2|41-4. 素数在阶乘中的幂次
求
首先考虑朴素算法。每次从
时间复杂度
考虑另外一种表达方式,我们考虑在
注意到
2|51-5. 库默尔定理
由 1-4 提到的幂次可知,对于组合数
考虑
这个定理将会在 Lucas 定理中用到。
2|61-6. 步数-子环长定理
对于长度为
的环,从一个点走每次走 步能走到的点数恰为 ,且形成的本质不同的环有 个。
直觉理解是很对的,但是我们还是严谨证明一下。
不妨考虑
考虑一般情况,我们对模
3|02. 取模意义下的基本运算
3|12-1. 加法,减法与乘法
在普通四则运算下的运算方式仍然成立,不过多提及。
3|22-2. 除法
注意到
3|32-3. 乘法逆元
2-3-1. 欧拉定理形式
由
关于快速幂,详见 初等数学瞎扯Ⅱ:辅助工具,这里不再赘述。
2-3-2. 线性求逆元
假设
2-3-3. 线性任意 n 个数逆元
令
3|42-4. 开根
开根与除法同理,也不能直接取模,为此我们也要对开根进行转化。注意到
具体计算见二次剩余。
4|03. 二元一次不定方程组问题
4|13-0. 问题简述
解二元一次不定方程。
4|23-1. 前置知识—裴蜀定理
对于一个二元一次方程,我们首先要判定解的存在性。
一个直观的结论是,对于方程
我们试图对这个结论做进一步推广,即若
不难发现上文等价于存在一组
综上,我们得到了二元一次不定方程解的存在性的充要条件,
4|33-2. 扩展欧几里得算法
我们再次审视一下上面的方程,不难发现我们可以视为解方程
扩展欧几里得算法是递归构造的算法,我们不妨回忆一下我们是如何辗转相除求
4|43-3. 代码
先是容易理解的。
然后是短一点的
4|53-4. 通解的形式与特解范围
通解可表示为如下的形式
其中
关于特解的大小具体证明可以参见 ycx 的博客,有结论为其通解与
4|63-5. 关于扩欧在逆元上的应用
- 对于求解逆元来说,费马定理只在
为质数的时候成立。而对于一类模数不为质数,且在 范围内的模数来说,扩展欧拉定理需要处理 ,而常见的处理 的复杂度是 (处理所有约数),当然我们也许可以使用pollard_pho
算法做到 分解质因数然后得到每个质因子幂次后根据约数个数和求 ,但这样让我们看起来很呆。考虑问题的实质是什么,求解在模 意义下 的逆元,即需要找到一个数 ,使得 ,而同余方程可以转二元一次不定方程求解,即 ,直接扩欧上,求出一组通解即可。
4|73-6. 一些奇怪的结论
你说的对,但是只有通解是没有用的。
一些题目中我们要求解需要满足一些性质,比如最小正整数解啥的,这里直接给出推导和结论。
的最小正整数解
我们试图对通解进行调整,具体而言,在
求解得到,
所以
的最小正整数解
与
的最大正整数解
即
的最大正整数解
即
- 正整数解的个数
我们先将解调整为
5|04. 离散对数问题
5|14-0. 问题简述
求解
中 的最小取值。
或者说,我们要找到一个
5|24-1. 大步小步算法
大步小步算法又叫做 BSGS(Baby Step Giant Step),他的普通形式适用于
BSGS 算法运用了根号平衡的思想,我们令
5|34-2. 扩展大步小步算法
现在如果没有
考虑我们在 gcd
里干的事情,把不互质的数变成互质的。
令 由于哈希表的大常数和实际增长速度我一般喜欢直接当成根号算法。
在做上述的过程中需要特判,比如
一个有趣的事实:我因为No Solution
写成No solution
查了 20min BSGS。
6|05. 线性同余方程组
6|15-0. 问题简述
求解形如
的线性同余方程组。
6|25-1. 中国剩余定理
中国剩余定理,简称 CRT(Chinese Remainder Theorem)。它用于求解模数两两互质的线性同余方程组,即对于任意
在CRT中,我们试图求出一个解集
我们试图对于单个方程求出一个解,令
首先试图满足第一个性质,直接令
然后是第二个性质,我们不妨令
6|35-2. 扩展中国剩余定理
考虑对于模数不两两互质的情况,在这个算法里,我们每次试图合并两个同余方程。
考虑对于如下同余方程
第一个同余方程的通解可以表示为 exgcd
求逆元即可。
合并后的方程即为
7|06. 阶与原根
7|16-1. 阶
对于一个数
考虑一个数字
和 互质,若 ,则 (扩展欧几里得),而 , 不互质,故原命题不成立。 再考虑一个数字
,则由扩展欧拉定理有一解为 。
接下来给出阶的性质。设存在两个数字
,证明如下。
若存在一个
,令 ,则 也是一个使得 的值,且 ,与上文矛盾。
-
若
,则一定有 ,证明同上。 -
若
在模 意义下的阶为 ,则 ,证明如下。
按照原根的定义写出下式。
再根据
,可以得到下式。 综上,
。
在模 意义下两两不同,证明如下。
若存在
满足 ,则 ,而 ,与阶的最小性矛盾,故不成立。
7|26-2. 原根
对于
原根的若干次幂构成了一个模
原根判定定理:对于
必要性:若
,则 ,与原根的定义矛盾。 充分性:不妨假设存在一个
满足 ,则此时若 不是原根,则令 ,此时有 ,不妨假设 ,令 的最小质因子为 ,则有 ,与原假设不符,故舍去。 综上,我们证明了原命题。
原根存在定理:对于一个数
7|36-3. 阶与原根的推论
对于一个存在原根的数字
第一部分在阶的性质中已经有提及,在这里略去,考虑性质二的证明,令
同时可以得到原根个数定理:原根个数为
因此我们得到一个求原根的算法,暴力枚举
同时,不难发现令
在这里给出求原根的代码。
我们将会在后文的高次剩余(也许会有?)中进一步探讨原根和阶的使用,在这里告一段落。
8|07. 卢卡斯定理
8|17-0. 问题简述
求
8|27-1. 普通卢卡斯定理
设两个数字
为证明上述问题,优先证明一个引理。
引理:
二项式定理拆开后,易证中间几项系数均为
的倍数,故得证。
同理可推出,
考虑 Lucas 定理的另一个表述,
不妨用二项式定理将组合数变为多项式系数(有一点生成函数的思想),即
8|37-2. 扩展卢卡斯定理
现在考虑模数
现在的问题转化为了求
将所有数字分成
最后用中国剩余定理合并即可。
9|0end.本文引用&鸣谢
__EOF__

本文链接:https://www.cnblogs.com/-Complex-/p/17351353.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具