程序员的数学 · 第 3 章

余 数

周期性和分组
把巨大的数字,变成一道简单的除法
适用 6-8 年级 90 分钟 7 个思考题闯关
开场 · 热身
02
余数 · 周期性和分组

不数到 100 亿,

怎么知道那天是星期几?

今天是星期日。1 亿天以后——大约 27 万年后——是星期几?
一个一个数?1 秒数 1 下,要数 3 年多。
用计算器?也装不下这么多位。

别慌。这节课送你一件数学里的「降维武器」——余数。

武器:余数 R
1 亿天以后是……
100000000
100000000 ÷ 7 = ?
数不过来,也算不动……直到我们看见「循环」。
答案藏在第 8 页 —— 武器就是余数
开场 · 路线图
03
余数 · 周期性和分组

今天要闯的两道关卡

7 个思考题 · 每学一个知识,立刻练一道题
1 周期与余数
思考题① 100 天后是星期几?
思考题② 10 的 100 次方天后呢?
思考题③ 超大乘方的个位数是几?
关键词:周期 · 分组
2 奇偶校验
思考题④ 黑白棋读心魔术
思考题⑤ 小猫在哪村?⑥ 草席铺得满吗?
思考题⑦ 七座桥能走遍吗?
关键词:奇偶 · 分类
开场 · 热身
04
余数 · 周期性和分组

先热热身:奇数和偶数

师 奇数是什么?
生 1、3、5、7、9……
师 对!奇数=除以 2 余 1。偶数呢?
生 除以 2 余 0,能被 2 整除!
除法就像分组:余数是几,你就属于哪一组。
除以 2,分两组 余 1 组(奇数) 1 3 5 7 9 余 0 组(偶数) 2 4 6 8 10 每一个整数,都会被"除以 2"分进其中一组。
R 第一关 · 45 分钟

周期与余数

找到循环的规律,让巨大的数字投降
思考题 ① ② ③ 等你来闯
第一关 · 思考题①
06
余数 · 周期性和分组
思考题 ①
今天是星期日,
100 天以后
是星期几?
提示:一周 7 天,转一圈回到起点
日历上数一数 日一二三四五六 今 123456 789 … ? 数到第 100 格会停在哪里?
第一关 · 思考题①
07
余数 · 周期性和分组

解法一:先数整数圈,再走几步

日 一 二 三 四 五 六 ×14 圈 98 天
1 98 ÷ 7 = 14,整整转了 14 圈 → 还是星期日
2 第 99 天 → 星期一
3 第 100 天 → 星期二
答案:星期二
第一关 · 思考题①
08
余数 · 周期性和分组

解法二:一步除法,余数直接给答案

100 ÷ 7 = 14 …… 2
0周日
1周一
2周二
3周三
4周四
5周五
6周六
n 天后是星期几 = n ÷ 7 的余数
× 数 100 次
慢,数到 1 亿要 3 年
√ 除 1 次
1 亿天后也只要一步
100000000 ÷ 7 余 2 → 星期二
第一关 · 图解
09
余数 · 周期性和分组

把星期想成一个「七角时钟」

0 1 2 3 4 5 6 1 天走 1 格,7 天转一圈
走 100 格 = 转了 14 圈,再走 2 格
商 14 告诉你「转了几圈」,
余数 2 告诉你「最后停在哪一格」。
转多少圈不重要,
停在哪一格才重要。
这就是余数:把漫长的绕圈,一步压缩成终点位置。
第一关 · 概念
10
余数 · 周期性和分组

余数的本质:除法就是分组

把 100 个同学按「每 7 人一组」分组: 7 人组7 人组7 人组7 人组 ……×14 剩下 2 落单的 2 人,就属于「余数 2」这一组 100 ÷ 7 = 14 组 …… 余 2
余数 = 组号 除以 7,余几就进几号组
余数相同 = 同一组 1、8、15 除以 7 都余 1
除一次,分完所有数 再大的数也逃不出 7 个组
第一关 · 生活链接
11
余数 · 周期性和分组

体育课报数,你早就玩过余数

1 2 1 2 1 2 小明小红小刚小丽…… 报 1 → 第 1 组(除以 2 余 1) 报 2 → 第 2 组(除以 2 余 0) 换个报法:1-2-3 循环呢?
二年级的「周期问题」你已经学过:找规律 → 定周期 → 列算式 → 看余数
今天只升级一件事:把「第 16 面小旗」换成 100 天、1 亿天、甚至 10 的 100 次方天。
课堂练习 ①
12
余数 · 周期性和分组

课堂练习 ①

学完就练 —— 3 道题,同桌互查,5 分钟
限时 5 分钟
1 今天是星期三,
56 天后是星期几?
想想 56 和 7 的关系
2 1 亿天后是星期几?
要求:10 秒内抢答!
别数!除一次就够了
3 今年元旦是星期六。
闰年有 366 天,
明年元旦是星期几?
闰年这一年有 366 天
课堂练习 ①
13
余数 · 周期性和分组

练习 ① 参考答案

√第 1 题
56 ÷ 7 = 8 余 0 没有余数 = 正好转了 8 整圈
→ 还是星期三
√第 2 题
100000000 ÷ 7 余 2 余 2 → 星期二
1 亿天也只除一次
√第 3 题
366 ÷ 7 = 52 余 2 周六 + 2 天
→ 星期一
易错点:余 0 不是「没有答案」,而是「正好一整圈」→ 回到起点那天。
第一关 · 思考题②
14
余数 · 周期性和分组
思考题 ②
今天是星期日,
10 的 100 次方天后
是星期几?
10 的 100 次方 = 1 后面跟 100 个 0
这个数长这样: 1 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
一共 100 个 0
直接除?计算器直接装不下!
第一关 · 提示
15
余数 · 周期性和分组

别跟大数硬碰,先试小的

数太大算不动 → 那就算小的! 1 天、10 天、100 天、1000 天……
一个一个试,观察「除以 7 的余数」有什么变化。
猜一猜:余数也会循环吗?
观察什么? 10 天后 → 10 ÷ 7 余 3
100 天后 → 余 2
1000 天后 → 余 6

盯住「余数」这一栏,看它有没有规律。
第一关 · 找规律
16
余数 · 周期性和分组

试算:10、100、1000……除以 7 的余数

0 的个数 n 10ⁿ ÷ 7 余数 星期 0 的个数 n 10ⁿ ÷ 7 余数 1(10 天后)3周三 2(100 天后)2周二 3(1000 天后)6周六 44周四 55周五 61周一 73 82 96 104 115 121 看黄色行:每隔 6 行,余数就从头再来一轮!
第一关 · 发现规律
17
余数 · 周期性和分组

余数循环了!周期是 6

3 2 6 4 5 余 3→周三余 2→周二余 6→周六 余 4→周四余 5→周五余 1→周一 回到 3,循环!
周期 = 6 每增加 6 个 0,星期数就重复一次。

所以只看「0 的个数 ÷ 6」的余数就够了。
第一关 · 答案
18
余数 · 周期性和分组

揭晓答案:星期四!

100 ÷ 6 = 16 …… 4
0周一
1周三
2周二
3周六
4周四
5周五
100 亿天后?余 4,还是星期四。
(不过那时宇宙可能都不在了)
10¹⁰⁰ 天后 星期四
第一关 · 图解
19
余数 · 周期性和分组

一座越走越慢的「六角时钟」

0 1 2 3 4 5 停在 4 → 周四
10 天后指 1,100 天后指 2,1000 天后指 3…… 指针指向的,是指数 n ÷ 6 的余数。
0 越多,走得越慢——所以它是「越走越慢的钟」。
埋个伏笔 「0 的个数」能代表数有多大 —— 这个想法以后会长成一对新工具:指数与对数。
课堂练习 ②
20
余数 · 周期性和分组

课堂练习 ②

周期 6 已经到手 —— 用它解决三道「不可能的大数」
限时 5 分钟
1 10¹⁶ 天后
是星期几?
0 的个数 = 16
2 10²⁰²⁶ 天后
是星期几?(今年是 2026 年哦)
2026 ÷ 6,口算试试
3 10⁹⁹⁹⁹⁹ 天后
是星期几?
99999 ÷ 6,口算试试
课堂练习 ②
21
余数 · 周期性和分组

练习 ② 参考答案

16 ÷ 6 = 2 余 4 余 4 → 周四 16 个 0,除以周期 6。
2026 ÷ 6 = 337 余 4 余 4 → 周四 2026 = 6 × 337 + 4。
99999 ÷ 6 = 16666 余 3 余 3 → 周六 十万位的天数,也只用一次除法。
注意:商有多大一点都不重要 —— 16 和 2026 的商差得远,余数都是 4,答案就都是周四。
第一关 · 思考题③
22
余数 · 周期性和分组
思考题 ③
1234567⁹⁸⁷⁶⁵⁴³²¹
的个位数
是几?
提示:只关心「个位」,其他位都是龙套
这个乘方有多大? 7 自乘 987654321 次 结果大约有 8 亿多位数字, 写满几百万张纸。 用计算机硬算:也要算很久 但我们只要个位!
第一关 · 提示
23
余数 · 周期性和分组

个位只听个位的话

1234567× 1234567 ──────── ???????????7 7 7 决定个位的,只有两个个位数:7 × 7 前面的一串 123456,统统可以忽略!
那就试 7 的乘方 7¹ = 7        个位 7
7² = 49       个位 9
7³ = 343     个位 3
7⁴ = 2401   个位 1
7⁵ = 16807 个位 7 ← 又回来了!
第一关 · 试算
24
余数 · 周期性和分组

试算:7 的乘方,个位数会循环吗?

7 的乘方结果个位数 7¹ = 777 7² = 49499 7³ = 3433433 7⁴ = 240124011 7⁵ = 16807168077 看个位数这一列:7 → 9 → 3 → 1 → 7 …… 它又回来了!
个位数在 7 → 9 → 3 → 1 之间打转,每 4 个一轮!
周期 = 4 7、9、3、1 这四个数字反复出现,长度是 4。

所以真正要算的只有一件事:987654321 ÷ 4 的余数。
第一关 · 答案
25
余数 · 周期性和分组

揭晓答案:个位数是 7

987654321 ÷ 4 = 246913580 …… 1
余 1 7 余 2 9 余 3 3 余 0(第 4 个) 1
余 1 → 取周期里第 1 个数字 7。所以这个 8 亿多位的巨数,个位是 7。
第一关 · 方法
26
余数 · 周期性和分组

三步法:把巨数变成小问题

三个思考题,其实用的是同一把钥匙
1 找周期 从最小的开始算:10 天、100 天、1000 天……
7¹、7²、7³……
直到某个结果「重复出现」。
2 定长度 数一数一个循环里有几个数,记作 L。

星期问题:L = 7(后来变 6)
个位问题:L = 4
3 取余数 用那个大得算不动的数 ÷ L:
余 r → 取周期里第 r 个;
余 0 → 取最后一个。
大数不可怕:除法一次,余数就把「算不动」变成「数得清」。
课堂练习 ③
27
余数 · 周期性和分组

课堂练习 ③

三步法到手 —— 自己动手算三道「算不动」的题
限时 6 分钟
1 3²⁰²⁶ 的个位数
是几?
先自己找 3 的周期 算 3¹、3²、3³、3⁴ 的个位
2 2¹⁰⁰ 的个位数
是几?
注意余 0 的情况 这题有个小陷阱,小心!
3 挑战:今天是星期四,
2¹⁰⁰ 天后是星期几?
周期可能不是 7 哦 先算 2ⁿ ÷ 7 的余数,看它多久循环一次。
课堂练习 ③
28
余数 · 周期性和分组

练习 ③ 参考答案

2026 ÷ 4 = 506 余 2 余 2 → 取第 2 个 → 9 3 的个位周期:3、9、7、1,第 2 个就是 9。 答案:9
100 ÷ 4 = 25 余 0 余 0 → 取最后一个 → 6 2 的个位周期:2、4、8、6,余 0 就取第 4 个 6。 答案:6
100 ÷ 3 = 33 余 1 第 1 个 → 2¹⁰⁰ ÷ 7 余 2 2ⁿ ÷ 7 的余数周期是 2、4、1,长度 3。星期四再走 2 天。 答案:星期六
易错点:余 0 时不能取「第 0 个」——要取周期的最后一个。
第二关 · 45 分钟

奇偶校验

只看「奇」和「偶」,不看数有多大
思考题 ④ ⑤ ⑥ ⑦ 等你来闯
第二关 · 情境
30
余数 · 周期性和分组

先变个魔术:猜中你藏的那枚棋

老师要蒙上眼睛。你随便摆、随便翻,我都能知道你动没动手。
1 你把这盘黑白棋随意摆在桌上
2 老师偷偷加进一枚「自己的棋子」
3 老师转身。你选择:翻一枚,或者不翻
4 老师回头看一眼,说:你翻过了!
棋子颜色随意,数量也随意
第二关 · 规则
31
余数 · 周期性和分组

魔术的完整规则

1 观众摆棋 黑白棋随意排列,数量不限。此时黑棋有多少枚,只有数过才知道。
2 老师加一枚情报棋 看清全场后,添上一枚黑棋或白棋,让「黑棋总数」变成偶数。
3 老师转身 观众可以翻动任意一枚棋子一次,也可以什么都不做。
4 老师睁眼揭晓 只数一数黑棋是奇数还是偶数,就知道观众有没有翻。
黑棋总数:偶数加了情报棋之后 翻 1 枚:黑↔白互换 黑棋总数 → 变成奇数 数出来是奇数 → 你一定翻过了!
第二关 · 提示
32
余数 · 周期性和分组

秘密藏在那一枚「情报棋」里

老师只做了一件事:让黑棋总数变成偶数 黑棋是奇数 → 加一枚黑棋
黑棋是偶数 → 加一枚白棋

从此「黑棋有偶数枚」成了一个暗号,一条基准线。
关键问题 翻动一枚棋子,黑棋总数会怎样变化?
一枚都不翻,又会怎样?
翻一枚棋子会发生什么 黑 白 黑棋 −1 奇偶改变了 翻两枚呢 黑棋 −2,奇偶性没变!
第二关 · 答案
33
余数 · 周期性和分组

答案:只看黑棋的奇偶,就够了

翻 0 枚 黑棋总数仍是偶数
→ 你没有动手
翻 1 枚 黑棋总数变成奇数
→ 你一定翻过了
翻 2 枚 黑棋总数又变回偶数
→ 藏回「没翻」的队伍里
一句话总结:翻一次,奇偶翻转;翻两次,等于没翻。所以「奇偶」就是这次魔术的唯一情报。
老师并不需要知道棋子的具体数目 —— 只需要「奇」还是「偶」这一个 bit 的信息。
第二关 · 概念
34
余数 · 周期性和分组

这个魔术,计算机每秒做几十亿次

它有一个正式名字:奇偶校验位(parity bit)
发送端:补上一位,让「1 的个数」变偶数 1 0 1 1 0 1 0 1 1 校验位 原本有 5 个「1」(奇数)→ 补一位 1 传输途中:有一位被噪声翻掉了 黑棋被翻了一枚 —— 就像魔术里那样 接收端 数 1 的个数 数出来是奇数 → 数据出错了,请重发;是偶数 → 一切正常。
第二关 · 生活中的校验
35
余数 · 周期性和分组

身份证的最后一位,是怎么算出来的?

340524 19800101 001 X ← 最后一位是校验码 前 6 位:地址码  7-14 位:出生日期  15-17 位:顺序码(奇数=男,偶数=女) 最后 1 位:把前 17 位各自乘一个「权重」,求和后除以 11,看余数。
第 1 步:加权求和 权重:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
加权和 = 189
第 2 步:除以 11,看余数 189 ÷ 11 = 17 余 2
余数只可能是 0 ~ 10 这 11 种
第 3 步:查表得校验码 余数:0 1 2 3 4 5 6 7 8 9 10
校验码:1 0 X 9 8 7 6 5 4 3 2
余数有 11 种可能 → 分成 11 组。你看,「余数就是分组」在生活中到处都是。
课堂练习 ④
36
余数 · 周期性和分组

课堂练习 ④

奇偶三道题 —— 不用数,只判断「奇」还是「偶」
限时 5 分钟
1 桌上黑棋有 8 枚(偶数)。
观众翻了 1 枚棋子后,
黑棋个数是奇数还是偶数?
翻一枚 = 黑变白或白变黑
2 同样是这 8 枚黑棋,
如果翻了 3 枚呢?
奇偶会变吗?
3 是奇数还是偶数?
3 收到一串数据
11001011
约定「1 的个数必须是偶数」,它对吗?
先数一数有几个 1
课堂练习 ④
37
余数 · 周期性和分组

练习 ④ 参考答案

8 − 1 = 7 翻 1 枚 → 奇数 翻一次,奇偶一定翻转。原来是偶数,就变成奇数。 答:奇数
翻了 3 次 奇数次 → 奇偶翻转 翻 3 枚 = 翻转 3 次,效果和翻 1 枚一样,都是「奇数次」。 答:奇数
数出 5 个 1 5 是奇数 → 不对 约定偶数却是奇数,说明传输过程中有一位被翻掉了。 答:出错了
记住:奇偶校验只能发现「奇数个错误」。如果同时错了 2 位,它就被骗过去了。
第二关 · 思考题⑤
38
余数 · 周期性和分组

寻找走失的小猫

一年前,小猫从 A 村 出发去旅行。
它每个月都会跑到相邻的村子里去(也可以跑回来)。
这一年它一共移动了 11 次(有一个月生病,待在原地没动)。

现在,它有可能在 B 村 吗?
提示:每移动一次,村子序号的奇偶都会翻转。
A B C D E F G 7 个村子排成一排,相邻的可以互相跑 深色村:第 1、3、5、7 个(奇数村) 浅色村:第 2、4、6 个(偶数村) A 出发 → 每次移动换一种颜色
第二关 · 提示
39
余数 · 周期性和分组

路线算不完,但目的地算得完

× 一条一条数路线:每次有 2 个选择,
11 次就是 2¹¹ = 2048 条 —— 太多了
√ 只问「落在哪一类村子」:
奇村 还是 偶村
不看路线,看目的地
奇偶性像一盏灯 移动 1 次 → 灯变色
移动 2 次 → 灯变回原色
移动 3 次 → 又变色……

所以:移动偶数次 = 颜色不变
   移动奇数次 = 颜色翻转
11 是奇数 → 颜色翻转
第二关 · 答案
40
余数 · 周期性和分组

答案:小猫不可能在 B 村

A B C D E F G 出发:A 村(奇数村) 移动 11 次 —— 奇数次 结果:落在偶数村(B、D、F) B 村是偶数村 → 小猫绝不可能在这里 它能去的地方只有 B、D、F 三处 —— 范围一下子缩小了三分之二。
换个问法试试 如果小猫移动了 12 次(偶数次)呢?
答案 偶数次 → 颜色不变 → 只可能在 A、C、E、G 这四个奇数村。
这就是奇偶的力量 不数路线,也能一口否掉一半的可能性。
第二关 · 思考题⑥
41
余数 · 周期性和分组

这间屋子,能正好铺满草席吗?

屋子的地面是 8 × 8 = 64 个方格。
可是装修时不小心,把 对角线上的两个角格 敲掉了,
现在只剩 62 格。

每张草席恰好盖住 相邻的两格,不能裁剪、不能重叠。
62 格需要 31 张草席。

请问:能正好铺满吗?
第二关 · 提示
42
余数 · 周期性和分组

给地面涂上黑白格,奇迹出现了

每张草席必盖「一黑一白」 相邻两格一定是不同颜色,这是棋盘染色的铁律。
两角同色,被敲掉后就失衡了 原来的 64 格是 32 黑 + 32 白。
两个对角线角格颜色相同,敲掉后变成 ——
30黑格
32白格
第二关 · 答案
43
余数 · 周期性和分组

答案:铺不满

1 62 格,需要 31 张 草席
2 每张草席盖 1 黑 1 白 → 31 张需要 31 黑 + 31 白
3 但地面只有 30 黑 + 32 白 —— 黑格少了一格!
30 ≠ 31 → 矛盾 → 无论怎么铺,都不可能铺满。
这道题教会我们什么 我们没有真的去尝试每一种铺法(那有上亿万种),
只用一个「黑白分类」,就判了死刑。
不用穷举,只需分类
第二关 · 思考题⑦
44
余数 · 周期性和分组

七座桥,能一次走遍吗?

这是 1736 年的柯尼斯堡。
河中间有两座小岛,河两岸是市区,一共架了 7 座桥。

居民们争论了几十年:
能不能从某地出发,每座桥恰好走一次,
最后回到出发点?
提示:把「陆地」简化成点,把「桥」简化成线。
小岛甲 小岛乙 北岸 南岸 一共 7 座桥
第二关 · 提示
45
余数 · 周期性和分组

把地图简化成一张「点线图」

北岸 南岸 甲岛 乙岛 线太多看不清 → 我们只关心「每个点上连了几条线」
数一数「度数」 北岸:3 条
南岸:3 条
甲岛:5 条
乙岛:3 条
全是奇数! 4 个点,度数 3、3、5、3 —— 四个都是「奇点」。
欧拉的发现 能一次走完所有线的图,奇点只能有 0 个或 2 个。
第二关 · 答案
46
余数 · 周期性和分组

答案:走不了,一座桥都别想省

0 个奇点 可以一笔画,
而且能回到出发点
2 个奇点 可以一笔画,
但起点终点必须是这两个点
4 个奇点 不行!
柯尼斯堡正好是这种
欧拉 1736 年用「奇偶」判了这个案子:答案是不可能。这一笔,开创了图论。
又一次:我们没有真的去走,只是数了数奇偶,就知道了结局。
收尾 · 总结
47
余数 · 周期性和分组

本章总结:余数是一件「降维武器」

第一关 · 周期性 星期数、乘方个位、10 的 100 次方……
它们都在 循环。

找周期 → 定长度 → 取余数
再大的数字,一次除法就投降。
第二关 · 奇偶性 黑白棋魔术、小猫在哪村、
草席铺不满、七桥走不通……

只要把东西分成 两组,
就能不用穷举,直接否掉一半可能。
一句话 余数 = 分组的编号。

准确分类,往往胜过精确把握。
算不动的时候,先问一句:
它属于哪一组?
7 个思考题,7 次「降维」:把数不清的东西,变成数得清的东西。
彩蛋
同学 「我的人生 360 度大转弯了!」
老师 「360 度……那不是没变吗?」
转一整圈,看起来什么都没变。
可「转了 360 度」和「一步没动」,是两件完全不同的事 ——
就像余数:余 0 不是「没有」,而是「正好一整圈」。
下一章预告:数学归纳法 —— 用「一步」走完「无限步」
下课啦
《程序员的数学》第 3 章 · 余数——周期性和分组
← → 翻页 · 空格下一页 · O 目录 · F 全屏