模意义下的数学

前言

我曾今写过一篇标题一模一样的文章,但是那篇都是在抄书,写的太烂了。

在此重构。

模意义是什么?

即小学学过的"余数":\(13\) 除以 \(5\)\(2\)\(3\)。那么 \(13 \bmod 5 = 3\)\(\bmod\) 读作模)。

如果有两个数 \(a,b\) 除以一个数 \(p\) 的余数一样,则我们称 \(a,b\) 关于 \(p\) 同余。记作:

\[a \equiv b \pmod p \]

在上下文清晰时,为了方便,可能省略 \(\pmod p\),直接记作 \(a \equiv b\)

在模意义下,同余的数就是同一个数。例如,模 \(3\) 意义下,\(1,4,7,-2\) 这些数统统都是同一个数。

举例:

  • \(4 + 5 \equiv 2 \pmod 7\)
    • 注:\(4 + 5 = 9\)\(9 \bmod 7 = 2\)
  • \(4 - 5 \equiv 6 \pmod 7\)
    • 注:\(4 - 5 = -1\)\((-1) \bmod 7 = 6\)
  • \(5 \times 6 \equiv 2 \pmod 7\)
    • 注:\(5 \times 6 = 30\)\(30 \bmod 7 = 2\)

加法、减法、乘法都很简单。

前置知识 与 符号约定

\(\gcd\) 为最大公约数。\(\text{lcm}\) 为最小公倍数。

\(a|b\) 表示 \(a\) 能整除 \(b\)。例:\(2|6\)

\(a \perp b\) 表示 \(a\)\(b\) 互质。例:\(8 \perp 9\)

艾弗森括号 \([c]\) 表示:\([c] = \begin{cases} 1 & c \\ 0 & \lnot c\end{cases}\)\(\lnot\) 表示逻辑非)。

【定义】\(m\) 的缩系:所有与模数 \(m\) 互质的数的集合。

【定理】乘法消去律:在模 \(m\) 意义下,若 \(a \perp m\)\(ax \equiv ay\),则 \(x \equiv y\)

证明:反证法。留作练习。\(\square\)

【定理】裴蜀定理:关于 \(x,y\) 的方程 \(ax+by=c\) 有解,当且仅当 \(\gcd(a,b) | c\)

注:形如 \(ax+by=c\) 的方程可使用 exgcd 在 \(O(\log n)\) 时间求解。([Luogu P5656]【模板】二元一次不定方程 (exgcd)

【定义】欧拉函数\(\varphi(n) = \sum\limits_{i=1}^n [i \perp n]\)

对于质数 \(p\)\(\varphi(p) = p-1\)

除法?(乘法逆元)

观察

思考:模 \(7\) 意义下,\(\dfrac 1 4\) 是几?

思考 \(\dfrac 1 4\) 的本质是什么。设它为 \(x\),不管 \(x\) 是多少,理应满足 \(4x \equiv 1 \pmod 7\)

我们惊人地发现,\(x \equiv 2 \pmod 7\) 是唯一解。所以:\(\dfrac 1 4 \equiv 2\)

再思考:模 \(7\) 意义下,\(\dfrac 3 4\) 是几?

答案:\(\dfrac 3 4 \equiv 3 \times \dfrac 1 4 \equiv 3 \times 2 \equiv 6\)

【定义】乘法逆元:模 \(m\) 意义下,\(x\) 的乘法逆元 \(y\) 满足 \(x \times y \equiv 1 \pmod m\)。简称逆元。

【定理】逆元存在条件\(a\) 有乘法逆元当且仅当 \(a\) 属于 \(m\) 的缩系。

证明:见下文计算方法 2。

【定理】逆元的唯一性:模 \(m\) 意义下,\(x\) 的乘法逆元若存在则唯一。

证明:由乘法消去律与逆元存在条件直接推出。\(\square\)

除以 \(x\) 相当于乘上 \(x\) 的逆元。

如何计算?

[Luogu P2613]【模板】有理数取余:求 \(\dfrac a b \bmod 19260817\) 的值。时间复杂度为模数的 \(\log\) 级别。

计算方法 1:费马小定理(仅适用于模数为质数)

【定理】费马小定理:模数 \(p\) 为质数,\(a \not\equiv 0\),则:

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

证明:

定义集合 \(A=\{1,2,\dots,p-1\}\)

把集合 \(A\) 的每个数乘上 \(a\) 得到集合 \(B\)

根据乘法消去律可得 \(A=B\)。把两个集合里的数乘起来:\(\prod\limits_{i=1}^{p-1} A_i \equiv \prod\limits_{i=1}^{p-1} a A_i = a^{p-1} \prod\limits_{i=1}^{p-1} A_i\)

根据乘法消去律可得 \(a^{p-1} \equiv 1\)\(\square\)

由费马小定理可以得到:

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

因此,\(\dfrac a b \equiv a \times b^{p-2} \pmod p\)

计算方法 2:二元一次不定方程

\(a \times b \equiv 1 \pmod m\) 相当于 \(ab + mk = 1\)\(a,m\) 都已知,可以求出 \(b\)

由裴蜀定理可知:

【定理】逆元存在条件\(a\) 有乘法逆元当且仅当 \(a\) 属于 \(m\) 的缩系。

计算方法 3:推大量逆元

[Luogu P3811]【模板】乘法逆元 & [Luogu P5431]【模板】乘法逆元 2。此处不赘述做法。

例题 1:乘法逆元的应用

[Luogu P4942] 小凯的数字:已知 \(M\),在模 \(9\) 意义下求 \(\dfrac M 2\) 的值。

因为 \(2 \times 5 \equiv 1\),所以 \(\dfrac 1 2 \equiv 5\),所以答案为 \(5M\)

重要概念:欧拉定理

是费马小定理的拓展。

【定理】欧拉定理:模 \(m\) 意义下,\(a \perp m\),则:

\[a^{\varphi(m)} \equiv 1 \pmod m \]

证明:

定义集合 \(A\)\(m\) 的缩系。

把集合 \(A\) 的每个数乘上 \(a\) 得到集合 \(B\)

根据乘法消去律可得 \(A=B\)。把两个集合里的数乘起来:\(\prod\limits_{i=1}^{\varphi(m)} A_i \equiv \prod\limits_{i=1}^{\varphi(m)} a A_i = a^{\varphi(m)} \prod\limits_{i=1}^{\varphi(m)} A_i\)

根据乘法消去律可得 \(a^{\varphi(m)} \equiv 1\)\(\square\)

重要概念:CRT

[Luogu P1495]【模板】中国剩余定理(CRT)/ 曹冲养猪

解方程:

\[\begin{cases} x \equiv r_1 \pmod {m_1} \\ x \equiv r_2 \pmod {m_2} \\ \vdots \\ x \equiv r_n \pmod {m_n} \end{cases}\]

其中 \(m_{1 \sim n}\) 不一定是质数,但是两两互质

(注:不互质其实也能做,但是用途不多:[Luogu P4777]【模板】扩展中国剩余定理(EXCRT)

【定理】中国剩余定理(CRT):对于这样的同余方程组,设 \(M = \prod\limits_{i=1}^n m_i\)\(M_i = \dfrac M {m_i}\)。设 \(t_i \equiv \dfrac 1 {M_i} \pmod {m_i}\)(即 \(t_i M_i \equiv 1 \pmod {m_i}\))。则方程的解为:\(x \equiv \sum\limits_{i=1}^n r_i t_i M_i \pmod M\)

证明:对于第 \(i\) 个方程:

\(j \ne i\),则 \(M_j\)\(m_i\) 的倍数,即 \(M_j \equiv 0 \pmod {m_i}\)

\(j = i\),则 \(M_i t_i \equiv 1 \pmod {m_i}\),即 \(r_i M_i t_i \equiv r_i \pmod {m_i}\)

因此,\(\sum\limits_{i=1}^n r_i t_i M_i \equiv r_i \pmod {m_i}\),确实是符合条件的解。

根据反证法可证没有其它解。\(\square\)

例题 2:CRT 的应用

[SDOI2010] 古代猪文 的一部分:\(f(x) \bmod p\) 容易求得(\(p\) 为质数),求 \(f(x) \bmod 999911658\) 的值。

注意到 \(999911658 = 2 \times 3 \times 4679 \times 35617\),对四个质数分别求解,用 CRT 合并即可。

重要概念:扩展欧拉定理

【定理】扩展欧拉定理

\[a^{\varphi(m)} \equiv a^{2\varphi(m)} \pmod m \]

等价形式:

\[a^b \equiv \begin{cases} a^b & b < \varphi(m) \\ a^{b \bmod \varphi(m) + \varphi(m)} & b \ge \varphi(m) \end{cases} \pmod m \]

证明:篇幅有点长而且不是很优雅,所以扔个 OI-Wiki 的链接\(\square\)

记住结论即可。

例题 3:幂塔

[Luogu P4139] 上帝与集合的正确用法:定义 \(a_0 = 1, a_n = 2^{a_{n-1}}\)。给定模数 \(m\),可以证明,\(a_i \bmod m\) 在某一个 \(i\) 之后都是同一个值,求这个值。\(m \le 10^7\)

注:我不喜欢 \(2^{2^{2^\cdots}} \bmod m\) 这种记法。非常有歧义。

只有永远扩展欧拉定理的第二种情况,才能保持同一个值。递归计算即可。因为 \(\varphi\) 的性质,递归只有 \(O(\log m)\) 层,可以通过。

重要概念:原根

【定义】原根:幂遍历了整个缩系的数。一般记为 \(g\)

【定理】原根存在定理\(m\) 有原根的充要条件为 \(m = 2, 4, p^\alpha, 2 p^\alpha\)\(p\) 为奇质数,\(\alpha\) 为正整数。

证明:因为我不会证,所以OI Wiki\(\square\)

如何计算原根?

【定理】原根判定定理:对于 \(x \perp m\)\(x\)\(m\) 的原根的充要条件是对于 \(\varphi(m)\) 的每个质因数 \(p\),都有 \(x^{\frac {\varphi(m)} p} \not\equiv 1 \pmod m\)

证明:若存在 \(d|\varphi(m)\) 使得 \(x^d \equiv 1\),则 \(x\) 不是原根。

不难发现所有 \(\dfrac {\varphi(m)} p\) 覆盖了 \(\varphi(m)\) 的所有因数的倍数。\(\square\)

【定理】最小原根估计:对于质数 \(p\) 与任意 \(\varepsilon > 0\)\(p\) 的最小原根是 \(O(p^{\frac 1 4 + \varepsilon})\) 级别。

证明:过于困难。

据 UOJ 群,合数 \(m\) 的最小原根还没有较好的估计。

从小到大枚举验证,即可得到一个数的最小原根。

[Luogu P6091]【模板】原根:求出一个数 \(m\) 的所有原根。

求出 \(m\) 的最小原根,记为 \(g\)。设还有一个原根为 \(g'\),则 \(g' \equiv g^k\)

\(g^k\) 是原根当且仅当 \(\gcd(k, \varphi(m)) = 1\)

由此可得:

【定理】原根个数定理:若 \(m\) 有原根,则原根个数为 \(\varphi(\varphi(m))\)

对数?

尝试定义 \(\log_a b\)\(a^x \equiv b \pmod m\) 的解。不难发现 \(x\) 是一个在模 \(\varphi(m)\) 意义下的数。

但是容易发现解似乎不唯一。为了使得它唯一,有两种方案。

基于原根定义的对数

根据原根的知识,我们发现对于原根 \(g\),可对于缩系中的元素 \(a\) 定义唯一的 \(\log_g a\)

注:实际上一般使用的符号为 \(\text{ind}_g a\)

性质

和普通的对数非常相似,性质很好。

\[\log_g (ab) \equiv \log_g a + \log_g b \pmod {\varphi(m)} \]

\[\dfrac {\log_{g_1} a} {\log_{g_1} g_2} \equiv \log_{g_2} a \pmod {\varphi(m)} \]

取最小值的对数

\(\log_a b\)\(a^x \equiv b \pmod m\) 的最小解(不一定存在)。

如何计算对数?(BSGS 与 exBSGS)

BSGS

[TJOI2007] 可爱的质数:求 \(a^x \equiv b \pmod p\) 的最小解。\(p\) 为质数。

答案必定在 \(p-1\) 以内。

制定块长 \(t = \lceil \sqrt p \rceil\)。预处理所有的 \(a^{A \times t}\)\(a^B\),其中 \(0 \le A,B \le t\)。若有 \(a^{A \times t} \equiv b \times a^B\)(用哈希表实现),则答案为 \(A \times t - B\)

exBSGS

[Luogu P4195]【模板】扩展 BSGS/exBSGS:求 \(a^x \equiv b \pmod m\) 的最小解。不保证 \(m\) 为质数。

P4195 题解 & 扩展 BSGS 学习笔记。这个做法非常优雅,而且似乎整个互联网上只有这一篇是这个做法。

平方根?(二次剩余)

【定义】二次剩余:对于 \(a \not\equiv 0\),若存在 \(x\) 使得 \(x^2 \equiv a \pmod m\),则 \(a\) 是模 \(m\) 的二次剩余,反之 \(a\) 是模 \(m\) 的非二次剩余。

注意:因为任意模数二次剩余并不常用,以下计算都在模奇质数 \(p\) 下进行

【定理】欧拉判别法:若 \(a\) 是二次剩余,则 \(a^{\frac {p-1} 2} \equiv 1 \pmod p\)。反之,\(a^{\frac {p-1} 2} \equiv -1 \pmod p\)

证明:

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

\[(a^{\frac {p-1} 2} - 1) (a^{\frac {p-1} 2} + 1) \equiv 0 \pmod p \]

所以 \(a^{\frac {p-1} 2}\) 等于 \(1\)\(-1\)

  • 充分:若 \(a\) 是二次剩余,设 \(a \equiv b^2\),则 \(a^{\frac {p-1} 2} \equiv b^{p-1} \equiv 1\)
  • 必要:若 \(a^{\frac {p-1} 2} \equiv 1\),设 \(g\) 为一原根,则 \(a\) 可表示为 \(g^k\),其中 \((p-1) | \dfrac {k(p-1)} 2\),即 \(2|k\),即 \(a\) 为二次剩余。

因此,\(a^{\frac {p-1} 2} \equiv 1\) 的充要条件是 \(a\) 为二次剩余。所以 \(a^{\frac {p-1} 2} \equiv -1\) 的充要条件是 \(a\) 为非二次剩余。\(\square\)

【定义】勒让德符号\(\left(\dfrac a p \right) = \begin{cases} 1 & a \text{ is a quadratic residue} \\ -1 & a \text{ is a quadratic nonresidue} \\ 0 & a \equiv 0 \pmod p \end{cases}\)

计算方法为:\(\left(\dfrac a p \right) \equiv a^{\frac {p-1} 2} \pmod p\)

复数

[Luogu P1962] 斐波那契数列:求 \(f_n \bmod m\) 的值,其中 \(f\) 是斐波那契数列,\(m = 10^9 + 7\)

根据斐波那契数列通项公式:

\[f_n = \dfrac 1 {\sqrt 5} \left(\left(\dfrac {1 + \sqrt 5} 2\right)^n - \left(\dfrac {1 - \sqrt 5} 2\right)^n \right) \]

如果 \(\sqrt 5 \bmod m\) 存在就可以直接计算了,但很可惜并没有。

定义一种新的复数 \(a + bi\),其中 \(i^2 \equiv 5 \pmod m\)。即 \(i\) 为不存在的 \(\sqrt 5\)。这个技巧称为扩域

用这种方式算出 \(\left(\left(\dfrac {1 + \sqrt 5} 2\right)^n - \left(\dfrac {1 - \sqrt 5} 2\right)^n \right)\) 的值(也是一个复数)。事实上,这个值的实部为 \(0\),而虚部就是我们要求的答案。

二次剩余方程解的情况

方程 \(x^2 \equiv n \pmod p\) 最多有两个解。

\(x_1^2 \equiv x_2^2\),则 \((x_1 + x_2)(x_1 - x_2) \equiv 0\)。即两根互为相反数。

每一对相反数都对应一个二次剩余,所以可得:

【定理】二次剩余个数:模奇质数 \(p\) 的二次剩余与非二次剩余的个数均为 \(\dfrac {p-1} 2\)

如何计算(奇质数)二次剩余?(Cipolla)

[Luogu P5491]【模板】二次剩余:给定 \(n\),求 \(x^2 \equiv n \pmod p\) 的解,其中 \(p\) 为奇质数。

首先特判 \(n \equiv 0\)。对于剩下的数,做法很神仙:

  1. 随机一个 \(a\),使得 \(\left(\dfrac {a^2 - n} p \right) = -1\)
  2. \(i\) 为满足 \(i^2 \equiv a^2 - n\) 的虚数单位。则 \(x \equiv \pm (a + i)^{\frac {p+1} 2}\)

我们来证明它的正确性:

第一步

恰有 \(\dfrac {p-1} 2\)\(a\) 满足 \(a^2 - n\) 是非二次剩余,所以期望 \(\dfrac {2p} {p-1} \approx 2\) 次就能找到需要的 \(a\)

证明:(rqy 太强了

\(n \equiv b^2\),则 \(a^2 - b^2 = (a+b)(a-b)\) 是非二次剩余当且仅当 \(\dfrac {a+b} {a-b}\) 是非二次剩余。\(a\) 在除了 \(b\) 以外的其它数遍历了一遍的时候,\(\dfrac {a+b} {a-b}\) 把除了 \(1\) 以外的其它数遍历了一遍(反证法可证)。所以恰有 \(\dfrac {p-1} 2\)\(a\) 使得 \(a^2 - n\) 是非二次剩余。

第二步

  • 引理 1:\(a^p \equiv a \pmod p\)。(费马小定理)
  • 引理 2:\(i^p \equiv -i\)
    • 证明:\(i^p \equiv (i^2)^{\frac {p-1} 2} \times i \equiv -i\)。(欧拉判定准则)
  • 引理 3:\((a+b)^p \equiv a^p + b^p\)
    • 证明:\((a+b)^p \equiv \sum\limits_{x=0}^p \dbinom p x a^x b^{p-x} \equiv \sum\limits_{x=0}^p \dfrac {p!} {x!(p-x)!} a^x b^{p-x} \equiv a^p + b^p \pmod p\)。(二项式定理)
    • 最后一步的解释:只有首尾两项中,分子上的 \(p\) 会被约去。

\[\begin{aligned} n & \equiv a^2 - i^2 \\ & \equiv (a+i) (a-i) \\ & \equiv (a+i) (a^p + i^p) & \text{引理 1 与引理 2}\\ & \equiv (a+i) (a+i)^p & \text{引理 3} \\ & \equiv (a+i)^{p+1} \\ \end{aligned}\]

\(x \equiv \pm (a + i)^{\frac {p+1} 2}\) 即可。

参考资料

部分知识点参考《深入浅出程序设计竞赛 - 进阶篇》

BSGS 与 exBSGS 与原根:

二次剩余:

posted @ 2024-03-27 23:32  August_Light  阅读(338)  评论(0)    收藏  举报