算术与数论
同余与模运算
数在达到固定模数后循环的算术体系。
直观时钟:循环的数字
看一看钟面。12点之后不是13点而是重新回到1点:时刻每隔12步就会"循环"一次。如果现在是9点,8小时后不是"17点"而是5点,因为17与5除以12的余数相同。这种日常生活中的循环正是同余思想的来源:如果两个整数相差一个固定数m(称为模)的倍数,就把它们看作"相同"。同余让我们可以用余数代替巨大的数字进行计算,而结果依然正确——这正是时钟、日历、校验位、哈希表以及现代密码学背后的机制。
在模 m 时钟上,弦将每个剩余类 x 连接到 axmodm。调节 m 与 a,观察映射何时置换全部剩余类、何时坍缩到子群。中学定义与基本性质
定义: 模m同余
固定一个正整数m(模)。两个整数a与b称为**模m同余**,记作a≡b(modm),是指m整除它们的差,即m∣(a−b)。等价地,a与b除以m的余数相同。与固定的a同余的所有整数构成其剩余类[a]={…,a−m,a,a+m,a+2m,…},恰好有m个不同的剩余类,记作Z/mZ。
a≡b(modm)⟺m∣(a−b) 这里a,b,m是整数且m>0;符号∣读作"整除",(modm)标明同余所附带的模。仅凭这个定义就能看出同余具有自反性、对称性与传递性——是一个等价关系——因此把"模m的剩余类"作为独立的对象、汇集成集合Z/mZ={[0],[1],…,[m−1]}来讨论是合理的。
Z/mZ={[0],[1],…,[m−1]} 哪些运算与同余相容?| 运算 | 规则 (若a≡b, c≡d(modm)) | 数值例 (mod 12) |
|---|
| 加法 | a+c≡b+d(modm) | 9+8≡21≡9(mod12) |
| 减法 | a−c≡b−d(modm) | 2−5≡−3≡9(mod12) |
| 乘法 | ac≡bd(modm) | 5×5≡25≡1(mod12) |
| 除法(约去c) | 仅当gcd(c,m)=1时有效 | 4×2≡4×5(mod6)但2≡5 |
大学定理
对固定的模m:(i) 对任意a有a≡a(modm);(ii) a≡b(modm)⟹b≡a(modm);(iii) a≡b, b≡c(modm)⟹a≡c(modm);并且若a≡b(modm)且c≡d(modm),则a+c≡b+d(modm)且ac≡bd(modm)。
为什么成立?
这正是同余能当作算术来使用的原因:意味着我们可以直接对余数进行加、减、乘,而不必用原来巨大的数字,并且总能得到正确的余数——这也是计算机能够校验16位卡号,或在从不存储100位数字的情况下计算7100mod13的原因。
证明
自反性:a−a=0,且对任意m都有m∣0,所以a≡a(modm)。
对称性:若a≡b(modm),则存在整数k使a−b=mk,于是b−a=m(−k);因为−k也是整数,故m∣(b−a),即b≡a(modm)。
传递性:若a≡b(modm)且b≡c(modm),写a−b=mk1,b−c=mk2。两式相加得a−c=(a−b)+(b−c)=m(k1+k2),故m∣(a−c),即a≡c(modm)。
与加法相容:由a−b=mk1与c−d=mk2相加得(a+c)−(b+d)=m(k1+k2),是m的倍数,故a+c≡b+d(modm)。
与乘法相容:写ac−bd=ac−bc+bc−bd=c(a−b)+b(c−d)=c⋅mk1+b⋅mk2=m(ck1+bk2),同样是m的倍数,故ac≡bd(modm)。综合(i)-(iii)使同余成为等价关系,最后两步表明Z上的每个环运算都能良好地降到剩余类Z/mZ上的运算。
若gcd(c,m)=1,则ac≡bc(modm), gcd(c,m)=1⟹a≡b(modm)。等价地,c在模m下存在乘法逆元:即存在整数u使cu≡1(modm)。
为什么成立?
通常的"除法"本质上是乘以逆元,而这个定理恰好告诉我们该逆元何时在模m下存在:当且仅当c与m没有公因数时存在。若不满足此条件,消去律确实会失效(见上表最后一行),这正是后续所有关于模m幂次的结果——费马小定理、欧拉定理、中国剩余定理——都建立在这一条代数事实之上的原因。
证明
由gcd(c,m)=1,贝祖等式(欧几里得算法的推论)保证∃u,v∈Z: cu+mv=1:存在整数u,v使cu+mv=1。
将ac≡bc(modm)两边乘以u:acu≡bcu(modm)。代入cu=1−mv:左边变为a(1−mv)=a−amv,由于amv是m的倍数,故a(1−mv)≡a(modm);同理右边b(1−mv)≡b(modm)。因此a≡b(modm),消去律得证。
此外,不必取a=1,b=0,c=c——直接利用同样的代入即得cu=1−mv≡1(modm),故u本身就是c在模m下的乘法逆元:这正是定理陈述所断言存在的对象。
假设gcd(c,m)=1至关重要:取c=4, m=6(故gcd(4,6)=2=1)。此时4×2=8≡2(mod6)且4×5=20≡2(mod6),所以4×2≡4×5(mod6),但2≡5(mod6)——一旦去掉互素假设,消去律确实会失效。
进阶实际应用与典型例题
模运算是应用数学中最不显眼却又无处不在的工具之一。日历用它来求星期几(模7);条形码与ISBN系统用一位校验位(模11或模10)来捕捉输入错误;计算机科学中的哈希表通过取余数把键映射到桶中;而RSA类密码(将在接下来两个主题中深入讲解)完全通过模幂运算来加密与解密消息。下面两个具体例子展示了日历与校验位应用背后的日常推理。
例题: 求星期几
如果今天是星期二,那么100天后是星期几?
解答
星期以周期7重复,因此只有100除以7的余数才重要:100=7×14+2,所以100≡2(mod7)。
根据上面证明的加法相容性,前进100天在模7下与仅前进2天效果相同:星期二+2天是星期四。
所以从星期二起100天后是星期四。注意我们完全不需要把全部100天一天一天数完——同余让我们把一个大数收缩为与之等价的小余数。
例题: 验证ISBN-10校验位
ISBN-10码d1d2⋯d10有效当且仅当∑i=110idi≡0(mod11)。请检验0-306-40615-2是否为有效的ISBN-10。
解答
列出数字d1,…,d10=0,3,0,6,4,0,6,1,5,2,构造加权和∑idi=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,20。相加得0+6+0+24+20+0+42+8+45+20=165。
利用同余对加法与乘法的相容性,我们只需要165mod11:因为11×15=165,所以165≡0(mod11)。校验通过,故0-306-40615-2是有效的ISBN-10。若有一位数字被打错,加权和几乎必定不再≡0(mod11),这正是出版商用这一方案自动捕捉录入错误的原因。
研究前沿研究中的同余:现代密码学中的剩余系统
按照标准约定0≤r<m,−17mod5等于多少?
若a≡4(mod9)且b≡7(mod9),则abmod9等于多少?
如果今天是星期二,那么50天后是星期几?
消去律ac≡bc(modm)⟹a≡b(modm)在何种情况下保证成立?