MathLabs

算术与数论

同余与模运算

数在达到固定模数后循环的算术体系。

直观时钟:循环的数字

看一看钟面。1212点之后不是1313点而是重新回到11点:时刻每隔1212步就会"循环"一次。如果现在是99点,88小时后不是"1717点"而是55点,因为1717与55除以1212的余数相同。这种日常生活中的循环正是同余思想的来源:如果两个整数相差一个固定数mm(称为模)的倍数,就把它们看作"相同"。同余让我们可以用余数代替巨大的数字进行计算,而结果依然正确——这正是时钟、日历、校验位、哈希表以及现代密码学背后的机制。

沿等分圆周移动的点,展示模m余数如何循环回到起点。
在模 mm 时钟上,弦将每个剩余类 xx 连接到 ax mod ma x \bmod m。调节 mm 与 aa,观察映射何时置换全部剩余类、何时坍缩到子群。

中学定义与基本性质

定义: 模mm同余

固定一个正整数mm(模)。两个整数aa与bb称为**模mm同余**,记作a≡b(modm)a \equiv b \pmod{m},是指mm整除它们的差,即m∣(a−b)m \mid (a-b)。等价地,aa与bb除以mm的余数相同。与固定的aa同余的所有整数构成其剩余类[a]={…,a−m,a,a+m,a+2m,… }[a] = \{\dots, a-m, a, a+m, a+2m, \dots\},恰好有mm个不同的剩余类,记作Z/mZ\mathbb{Z}/m\mathbb{Z}。

a≡b(modm)  ⟺  m∣(a−b)a \equiv b \pmod{m} \iff m \mid (a-b)

这里a,b,ma,b,m是整数且m>0m>0;符号∣\mid读作"整除",(modm)\pmod m标明同余所附带的模。仅凭这个定义就能看出同余具有自反性、对称性与传递性——是一个等价关系——因此把"模mm的剩余类"作为独立的对象、汇集成集合Z/mZ={ [0],[1],…,[m−1] }\mathbb{Z}/m\mathbb{Z} = \{\,[0],[1],\dots,[m-1]\,\}来讨论是合理的。

Z/mZ={ [0], [1], …, [m−1] }\mathbb{Z}/m\mathbb{Z} = \{\,[0],\,[1],\,\dots,\,[m-1]\,\}
哪些运算与同余相容?
运算规则 (若a≡b, c≡d(modm)a\equiv b,\ c\equiv d \pmod m)数值例 (mod 1212)
加法a+c≡b+d(modm)a+c\equiv b+d \pmod m9+8≡21≡9(mod12)9+8\equiv 21\equiv 9 \pmod{12}
减法a−c≡b−d(modm)a-c\equiv b-d \pmod m2−5≡−3≡9(mod12)2-5\equiv -3\equiv 9 \pmod{12}
乘法ac≡bd(modm)ac\equiv bd \pmod m5×5≡25≡1(mod12)5\times 5\equiv 25\equiv 1 \pmod{12}
除法(约去cc)仅当gcd⁡(c,m)=1\gcd(c,m)=1时有效4×2≡4×5(mod6)4\times 2\equiv 4\times 5\pmod 6但2≢52\not\equiv 5

大学定理

对固定的模mm:(i) 对任意aa有a≡a(modm)a \equiv a \pmod{m};(ii) a≡b(modm)  ⟹  b≡a(modm)a\equiv b \pmod m \implies b\equiv a\pmod m;(iii) a≡b, b≡c(modm)  ⟹  a≡c(modm)a\equiv b,\ b\equiv c \pmod m \implies a\equiv c \pmod m;并且若a≡b(modm)a\equiv b \pmod m且c≡d(modm)c\equiv d\pmod m,则a+c≡b+d(modm)a+c \equiv b+d \pmod{m}且ac≡bd(modm)ac \equiv bd \pmod{m}。

为什么成立?

这正是同余能当作算术来使用的原因:意味着我们可以直接对余数进行加、减、乘,而不必用原来巨大的数字,并且总能得到正确的余数——这也是计算机能够校验1616位卡号,或在从不存储100100位数字的情况下计算7100 mod 137^{100} \bmod 13的原因。

证明

自反性:a−a=0a-a=0,且对任意mm都有m∣0m\mid 0,所以a≡a(modm)a\equiv a\pmod m。

对称性:若a≡b(modm)a\equiv b\pmod m,则存在整数kk使a−b=mka-b=mk,于是b−a=m(−k)b-a=m(-k);因为−k-k也是整数,故m∣(b−a)m\mid(b-a),即b≡a(modm)b\equiv a\pmod m。

传递性:若a≡b(modm)a\equiv b\pmod m且b≡c(modm)b\equiv c\pmod m,写a−b=mk1a-b=mk_1,b−c=mk2b-c=mk_2。两式相加得a−c=(a−b)+(b−c)=m(k1+k2)a-c=(a-b)+(b-c)=m(k_1+k_2),故m∣(a−c)m\mid(a-c),即a≡c(modm)a\equiv c\pmod m。

与加法相容:由a−b=mk1a-b=mk_1与c−d=mk2c-d=mk_2相加得(a+c)−(b+d)=m(k1+k2)(a+c)-(b+d) = m(k_1+k_2),是mm的倍数,故a+c≡b+d(modm)a+c\equiv b+d\pmod m。

与乘法相容:写ac−bd=ac−bc+bc−bd=c(a−b)+b(c−d)=c⋅mk1+b⋅mk2=m(ck1+bk2)ac-bd = ac-bc+bc-bd = c(a-b)+b(c-d) = c\cdot mk_1 + b\cdot mk_2 = m(ck_1+bk_2),同样是mm的倍数,故ac≡bd(modm)ac\equiv bd\pmod m。综合(i)-(iii)使同余成为等价关系,最后两步表明Z\mathbb{Z}上的每个环运算都能良好地降到剩余类Z/mZ\mathbb{Z}/m\mathbb{Z}上的运算。

若gcd⁡(c,m)=1\gcd(c,m)=1,则ac≡bc(modm), gcd⁡(c,m)=1  ⟹  a≡b(modm)ac\equiv bc \pmod m,\ \gcd(c,m)=1 \implies a\equiv b \pmod m。等价地,cc在模mm下存在乘法逆元:即存在整数uu使cu≡1(modm)cu\equiv 1\pmod m。

为什么成立?

通常的"除法"本质上是乘以逆元,而这个定理恰好告诉我们该逆元何时在模mm下存在:当且仅当cc与mm没有公因数时存在。若不满足此条件,消去律确实会失效(见上表最后一行),这正是后续所有关于模mm幂次的结果——费马小定理、欧拉定理、中国剩余定理——都建立在这一条代数事实之上的原因。

证明

由gcd⁡(c,m)=1\gcd(c,m)=1,贝祖等式(欧几里得算法的推论)保证∃ u,v∈Z: cu+mv=1\exists\, u,v \in \mathbb{Z}:\ cu+mv=1:存在整数u,vu,v使cu+mv=1cu+mv=1。

将ac≡bc(modm)ac\equiv bc\pmod m两边乘以uu:acu≡bcu(modm)acu\equiv bcu\pmod m。代入cu=1−mvcu=1-mv:左边变为a(1−mv)=a−amva(1-mv)=a-amv,由于amvamv是mm的倍数,故a(1−mv)≡a(modm)a(1-mv)\equiv a\pmod m;同理右边b(1−mv)≡b(modm)b(1-mv)\equiv b\pmod m。因此a≡b(modm)a\equiv b\pmod m,消去律得证。

此外,不必取a=1,b=0,c=ca=1,b=0,c=c——直接利用同样的代入即得cu=1−mv≡1(modm)cu = 1-mv \equiv 1 \pmod m,故uu本身就是cc在模mm下的乘法逆元:这正是定理陈述所断言存在的对象。

假设gcd⁡(c,m)=1\gcd(c,m)=1至关重要:取c=4, m=6c=4,\ m=6(故gcd⁡(4,6)=2≠1\gcd(4,6)=2\neq1)。此时4×2=8≡2(mod6)4\times 2=8\equiv 2\pmod 6且4×5=20≡2(mod6)4\times 5=20\equiv 2\pmod 6,所以4×2≡4×5(mod6)4\times2\equiv 4\times5\pmod 6,但2≢5(mod6)2\not\equiv 5\pmod 6——一旦去掉互素假设,消去律确实会失效。

进阶实际应用与典型例题

模运算是应用数学中最不显眼却又无处不在的工具之一。日历用它来求星期几(模77);条形码与ISBN系统用一位校验位(模1111或模1010)来捕捉输入错误;计算机科学中的哈希表通过取余数把键映射到桶中;而RSA类密码(将在接下来两个主题中深入讲解)完全通过模幂运算来加密与解密消息。下面两个具体例子展示了日历与校验位应用背后的日常推理。

例题: 求星期几

如果今天是星期二,那么100100天后是星期几?

解答

星期以周期77重复,因此只有100100除以77的余数才重要:100=7×14+2100 = 7\times 14 + 2,所以100≡2(mod7)100 \equiv 2 \pmod 7。

根据上面证明的加法相容性,前进100100天在模77下与仅前进22天效果相同:星期二+ 2+\,2天是星期四。

所以从星期二起100100天后是星期四。注意我们完全不需要把全部100100天一天一天数完——同余让我们把一个大数收缩为与之等价的小余数。

例题: 验证ISBN-10校验位

ISBN-10码d1d2⋯d10d_1d_2\cdots d_{10}有效当且仅当∑i=110i di≡0(mod11)\sum_{i=1}^{10} i\, d_i \equiv 0 \pmod{11}。请检验0-306-40615-20\text{-}306\text{-}40615\text{-}2是否为有效的ISBN-10。

解答

列出数字d1,…,d10=0,3,0,6,4,0,6,1,5,2d_1,\dots,d_{10} = 0,3,0,6,4,0,6,1,5,2,构造加权和∑i di=1(0)+2(3)+3(0)+4(6)+5(4)+6(0)+7(6)+8(1)+9(5)+10(2)\sum i\,d_i = 1(0)+2(3)+3(0)+4(6)+5(4)+6(0)+7(6)+8(1)+9(5)+10(2)。

计算各项:0,6,0,24,20,0,42,8,45,200,6,0,24,20,0,42,8,45,20。相加得0+6+0+24+20+0+42+8+45+20=1650+6+0+24+20+0+42+8+45+20 = 165。

利用同余对加法与乘法的相容性,我们只需要165 mod 11165 \bmod 11:因为11×15=16511\times 15 = 165,所以165≡0(mod11)165 \equiv 0 \pmod{11}。校验通过,故0-306-40615-20\text{-}306\text{-}40615\text{-}2是有效的ISBN-10。若有一位数字被打错,加权和几乎必定不再≡0(mod11)\equiv 0 \pmod{11},这正是出版商用这一方案自动捕捉录入错误的原因。

研究前沿研究中的同余:现代密码学中的剩余系统

按照标准约定0≤r<m0 \le r < m,−17 mod 5-17 \bmod 5等于多少?

若a≡4(mod9)a \equiv 4 \pmod 9且b≡7(mod9)b \equiv 7 \pmod 9,则ab mod 9ab \bmod 9等于多少?

如果今天是星期二,那么5050天后是星期几?

消去律ac≡bc(modm)  ⟹  a≡b(modm)ac\equiv bc \pmod m \implies a\equiv b\pmod m在何种情况下保证成立?

参考文献

  1. Carl Friedrich Gauss (1801). Disquisitiones Arithmeticae
  2. Jung Hee Cheon, Andrey Kim, Miran Kim, Yongsoo Song (2017). Homomorphic Encryption for Arithmetic of Approximate Numbers · DOI:10.1007/978-3-319-70694-8_15