我每年这个时候都会被问到同一个问题:"离散数学(本)复习题我刷了两遍,为什么一上考场还是发懵?"问这话的人里,有工作几年回来补学历的,也有在校为了拿学分的,答案其实都一样——他们把复习题当成了"要做完的任务",而不是"要看懂的地图"。离散数学(本)这门课的特殊性在于,它的知识点看着散:集合、关系、图论、逻辑、代数、组合,每块都像独立的小学科;但考起试来,命题人只反复考那么几十个固定动作。复习题的价值不在于题目本身,而在于它把命题人的偏好明明白白摊在你面前。这篇东西我想按自己带复习课的经验,把"离散数学(本)复习题"该怎么拆、怎么做、怎么在四周内把分数抠出来,完整讲一遍。不管你是零基础想稳稳及格,还是想冲个高分,下面这套流程都能直接抄。
1. 摸清出题地图:复习题不是用来"做完"的
1.1 本科层次离散数学的四大板块与分值分布
先把这门课的骨架说清楚。本科层次的离散数学,无论你用哪本教材,主体都是四块:集合论与关系、图论、数理逻辑、代数系统,另外挂一块组合计数与递推关系。不同学校的分值会飘,但区间相对稳定,我把自己见过的情况整理成一张表,你可以对着自己手里的复习资料校准。
| 板块 | 常见核心考点 | 大致分值 | 提分难度 |
|---|---|---|---|
| 集合与关系 | 集合运算、关系性质判定、闭包、等价关系与划分、偏序与哈斯图 | 15-20 | 低 |
| 图论 | 度序列与握手定理、欧拉图与哈密顿图、树与生成树、最短路、平面图 | 20-25 | 中 |
| 数理逻辑 | 命题符号化、真值表、主范式、推理证明、谓词逻辑量词 | 20-25 | 中高 |
| 代数系统 | 二元运算性质、群与子群、循环群、陪集、格与布尔代数 | 15-20 | 高 |
| 组合与递推 | 排列组合、容斥原理、鸽巢原理、递推关系求解 | 10-15 | 中 |
这张表透露的信息很关键:集合与关系是"送分区",代数系统是"拉分区",图论和逻辑是"主战场"。为什么这么排?因为集合与关系的判定规则是纯机械的,只要记住矩阵的几条判据,几乎不会失分;而代数系统的题目往往要求你先判断"这个结构是不是群",判断错了后面全废,一步错步步错;图论和逻辑题量大、题型固定,练熟了就是稳定的分数来源。
我得提醒一句,分值分布一定要以你自己学校下发的复习资料和考试说明为准。有些学校把"函数"和"集合的基数"单独拉出来考,有些学校代数系统只考群不考格,这些差异只有你手里的资料能告诉你。
1.2 用一张"考点-题号"映射表把复习题拆开
拿到复习题的第一件事,绝对不是从第一题开始做。而是把资料摊在桌上,做一张映射表。做法很简单:逐题扫一眼,只判断"这题考什么",不判断"我会不会做"。
| 复习题编号 | 涉及考点 | 教材章节 | 掌握程度 |
|---|---|---|---|
| 例1 | 关系性质的矩阵判定 | 第3章 关系 | 会 |
| 例2 | 求传递闭包 | 第3章 关系 | 半会 |
| 例3 | 欧拉回路判定 | 第5章 图论 | 不会 |
| 例4 | 主析取范式 | 第2章 逻辑 | 半会 |
这张表做下来的第一个收益,是你会发现自己"不会"的题高度集中在两三个考点上,而不是均匀分布。我见过一个学生,三十道复习题里有九道栽在"求主析取范式"上,其他题基本都对。这种情况下,他花三个小时死磕范式,比把整套卷子再刷一遍的收益高十倍。
第二个收益更隐蔽:做映射表的过程,其实是在给大脑建立索引。你以后看到"已知关系R的关系矩阵,判断其性质"这个句式,脑子里会自动跳出"对角线、转置、布尔平方"三个关键词。这种条件反射式的识别能力,是考场省时间的关键。
这张表不要做得太细,一题一行,五分钟能扫二十题就够了。做太细你会陷进去,反而浪费时间。做完之后按"不会"的数量排序,数量最多的三个考点,就是你接下来两周的主攻方向。
1.3 三分钟做完一次自我体检
在正式复习之前,我建议你先做一次体检,摸清自己的真实起点。找一套历年卷或者复习题里最完整的一套,掐时间做,但不要真做完——做三分钟。
三分钟能做什么?从第一题开始往下扫,只看题干,不动笔,在心里给每道题打一个标签:能立刻说出思路的标"会",有印象但说不清的标"半会",完全没头绪的标"不会"。三分钟能扫完的选择填空,基本就够你判断出这套卷子的难点了。
注意:这次体检的目的是定位,不是评估水平。标"不会"不代表你笨,只代表这个考点你还没接触过。很多人卡在这一步,做完发现一半不会就心态崩了,然后开始盲目刷题。别这样,把"不会"当成一张待办清单就好。
体检完你会得到一张热力图:如果"不会"集中在前半部分(集合与关系),说明你基础概念没打牢;如果集中在后半部分(代数系统、组合计数),说明那是你完全没学过的盲区,需要从教材例题补起。这两种情况的复习策略完全不同——前者靠刷题就能补,后者必须先回教材看定义和例题。
2. 三遍刷题法:把复习题榨干
2.1 第一遍按章节刷:把定义翻译成人话
第一遍刷题的目的不是做对,而是把教材里的定义翻译成自己看得懂的话。离散数学最坑的地方在于,定义是用数学语言写的,但考试考的是你能不能快速套用。
举个例子。"关系R在集合A上是自反的",教材写的是"对任意a∈A,都有(a,a)∈R"。这句话看着没毛病,但你做题的时候需要把它翻译成:关系矩阵的主对角线全是1。同理,"对称"翻译成"矩阵等于它的转置","反对称"翻译成"矩阵与它的转置的交集只在主对角线上有1","传递"翻译成"矩阵的布尔平方包含在原矩阵里"。
第一遍做题时,我建议每做一道题,就在旁边写一句"这题在考什么"。写不出来就停下来翻教材。这个过程会很慢,一套卷子可能要花三四个小时,但它是唯一能让概念真正落地的方法。
这一遍还要做一件事:建立"概念卡"。把每个核心定义抄在一张卡片正面,反面写它的三种等价表述(文字描述、矩阵判据、图形特征)。比如"等价关系"是"自反+对称+传递",它的图形特征是"关系图分成若干个互不相交的完全子图",它的应用是"对应集合的一个划分"。三张面孔认识同一件事,考场上无论从哪个角度问你,你都能接得住。
2.2 第二遍按题型刷:把套路练成肌肉记忆
第一遍是按章节做的,第二遍要打乱顺序,按题型做。做法是把复习题里同一类型的题挑出来,一次做五到八道。
为什么要成组做?因为单做一道题,你靠的是临时推理;连做五道同类题,你会自己总结出解题模板。比如"判断二元运算是否满足结合律",做五道之后你会发现规律:有限集上的运算,直接用运算表验证;有具体表达式的运算,就老老实实展开两边算一遍。这种总结出来的东西,比看别人写的方法管用得多。
我把常见的题型归类列出来,你对照着把复习题分堆:
- 判定类:关系性质判定、图的可图化判定、群与子群判定、格与布尔代数判定
- 计算类:传递闭包、最短路、最小生成树、带权路径长度、容斥计数、递推求解
- 构造类:哈斯图绘制、欧拉回路寻找、生成树构造、范式化简
- 证明类:逻辑推理证明、子群判定证明、定理应用证明
判定类和计算类是分数的基本盘,必须练到百分百正确;证明类难度高但分值也高,能写多少写多少,格式写对了至少拿一半分。这个策略听起来功利,但考试就是这样,先把确定的分拿到手。
2.3 第三遍限时套卷:把节奏焊死在手上
第三遍才是真正意义上的"做卷子"。至少留出三套完整的复习题,掐着考试时间做,中间不翻书、不查手机、不上厕所。
这一遍的核心不是知识,是节奏。离散数学的卷子通常是"选择填空+计算+证明"的结构,很多人前面的计算题磨太久,后面分值最高的证明题只剩十分钟,最后交白卷。所以限时训练时必须练时间分配。
| 题型 | 建议用时占比 | 目标 |
|---|---|---|
| 选择填空 | 25% | 30秒一题,超过1分钟先跳过 |
| 计算题 | 45% | 每题8-12分钟,写出完整步骤 |
| 证明题 | 30% | 每题10-15分钟,能写几步写几步 |
时间分配的原则是:性价比高的先做。一道两分的填空题和一道十分的计算题,同样卡十分钟,损失完全不同。所以遇到卡壳立刻标记跳过,先把能拿的分全拿到,再回头攻坚。
提示:限时做题时,把每道题的起止时间记在草稿纸上。做完你会发现,超时的题往往不是最难的题,而是你"以为自己会、结果算错了"的题。这个记录比分数本身有价值。
2.4 错题本只写三栏,写满了说明你还没懂
错题本的常见错误是抄题抄答案,最后变成一份手抄的复习资料,没有任何价值。我的建议是只写三栏:错因、正确思路的第一句话、同类题特征。
"错因"要写到具体操作层面。不要写"粗心",要写"传递闭包算到第三轮时漏了新增的边";不要写"没学会",要写"把反对称的条件记成了矩阵不对称"。
"正确思路的第一句话"是关键。很多人复盘时写一大段推导,下次遇到同类题还是卡。真正有用的是那句话,比如"看到求子集个数,先数集合的基数,答案是2的n次方"。这句话是解题的启动键。
"同类题特征"是让你以后能认出来。写清题干里会出现哪些关键词,比如出现"最少有几个顶点"、"度序列"、"握手定理"这几个词,基本就是图的度序列题。
三栏写满一页,你就可以把那道题的题号划掉了。我个人的经验是,同一种错因连续出现三次,说明这不是疏忽,是概念漏洞,必须回教材重看。
3. 五个必考模块的解题模板与手算流程
3.1 集合与关系:性质判定、闭包与哈斯图
关系性质判定是整张卷子里最不该丢分的题。设集合A上有关系R,关系矩阵为M,判定规则如下。
| 性质 | 矩阵判据 | 容易搞混的点 |
|---|---|---|
| 自反 | 主对角线全为1 | 反自反是主对角线全为0,两者可以都不成立 |
| 对称 | M等于M的转置 | 只要有一对不对称就不成立 |
| 反对称 | M与转置的交集只在主对角线 | 允许主对角线有1,也允许全是0 |
| 传递 | M的布尔平方包含于M | 必须逐项验证,不能只看几个元素 |
传递性的判定最容易翻车,因为肉眼看不出来。稳妥的做法是算布尔平方:M²中第i行第j列为1,当且仅当存在k使得M[i][k]和M[k][j]同时为1。算完之后检查M²里每一个1,是否在M中对应位置也是1。只要有一个1不在,就不传递。
传递闭包用Warshall算法,手工做的时候就是反复迭代,直到矩阵不再变化。伪代码如下。
W = M for k in 1..n: for i in 1..n: for j in 1..n: W[i][j] = W[i][j] or (W[i][k] and W[k][j])手工计算时,你可以简化成一句话:对每个中间点k,如果i能到k且k能到j,就补上i到j的边。反复做,直到某一轮没有新增边为止。我一般会在草稿纸上画关系图,边补边圈,比纯算矩阵直观。
等价关系对应划分,这一点必须刻进脑子里。题目如果问"由R确定的划分是什么",你就把A中互相等价的元素归到一组,每组就是一个划分块。反过来,给出划分求等价关系,就是让每个块内部元素两两有关系。
偏序关系求哈斯图,步骤固定:先按偏序关系画关系图,删掉所有自环,删掉所有能通过传递性推出的边,剩下的边按"小的在下、大的在上"分层排列。注意哈斯图里没有箭头也没有环,方向由上下约定。
3.2 图论:从握手定理到最短路,手算表格怎么排
图论的分值高、题型多,但只要抓到几条主线就能稳住。
第一条主线是度。握手定理说所有顶点的度数之和等于边数的两倍。这个定理衍生出一堆小题:已知度序列求边数、判断度序列是否可图化(奇度顶点个数必须是偶数)。度序列可图化的完整判定用Havel-Hakimi算法:把序列降序排列,取第一个数d,删掉它,然后把后面d个数各减1,重新排序,重复直到出现负数(不可图化)或全为零(可图化)。
第二条主线是欧拉与哈密顿。欧拉回路的判定是充要条件:图连通(孤立点除外)且所有顶点度数为偶数。欧拉通路的判定:连通且恰有0个或2个奇度顶点。哈密顿问题的坑在于它没有简单的充要条件,所以考试只会考充分条件或者让你举例。Dirac条件说,n个顶点的图(n≥3),如果每个顶点度数都大于等于n/2,那它一定有哈密顿回路。Ore条件更宽松一点:任意两个不相邻顶点的度数之和大于等于n,就有哈密顿回路。这两个条件都是充分不必要,题目问"判断是否为哈密顿图",如果满足条件可以直接答是,不满足则不能直接否定。
第三条主线是树与最短路。最小生成树用Kruskal算法手工做:把边按权从小到大排序,依次选边,只要不构成回路就选上,直到选够n-1条边。判断是否成回路,看图里这两个点是否已经连通即可。
Dijkstra算法手工做,用表格最清楚。假设从v1出发,图的边为:v1-v2权2,v1-v3权5,v2-v3权2,v2-v4权6,v3-v4权7,v3-v5权1,v4-v5权4。迭代过程如下。
| 步骤 | 已确定集合S | v2 | v3 | v4 | v5 |
|---|---|---|---|---|---|
| 初始 | {v1} | 2 | 5 | ∞ | ∞ |
| 1 | {v1,v2} | - | 4 | 8 | ∞ |
| 2 | {v1,v2,v3} | - | - | 8 | 5 |
| 3 | {v1,v2,v3,v5} | - | - | 8 | - |
| 4 | 全部 | - | - | - | - |
每一步都是"从未确定的顶点里挑距离最小的那个确定下来,然后用它去更新邻居"。注意负数边的图不能用Dijkstra,这是算法的前提。
哈夫曼树也常考。给定权值1、3、5、7、9,构造最优二叉树:每次取最小的两个合并。1和3合并成4;现在有4、5、7、9,取4和5合并成9;现在有7、9、9,取7和9合并成16;现在有9、16,合并成25。带权路径长度等于所有内部节点的权值之和,也就是4+9+16+25=54。你也可以按叶子深度验算:9×1+7×2+5×3+3×4+1×4=54,结果一致。这个"内部节点求和"的快捷算法能帮你省下大量时间。
3.3 数理逻辑:范式化简与推理证明的标准写法
逻辑部分的核心是两块:求范式,写证明。
求主析取范式有两条路。真值表法最稳,把所有变元的取值组合列出来,找出使命题公式为真的行,每行对应一个极小项,把所有极小项析取起来就是主析取范式。等值演算法快,但要求你熟记下面这些常用等价式。
| 名称 | 等价式 |
|---|---|
| 双重否定 | ¬¬p 等价于 p |
| 德摩根律 | ¬(p∧q) 等价于 ¬p∨¬q;¬(p∨q) 等价于 ¬p∧¬q |
| 蕴含等值式 | p→q 等价于 ¬p∨q |
| 等值式 | p↔q 等价于 (p→q)∧(q→p) |
| 分配律 | p∧(q∨r) 等价于 (p∧q)∨(p∧r) |
| 吸收律 | p∨(p∧q) 等价于 p |
举个具体的例子。求 (p∧q)∨(¬p∧r) 的主析取范式。按变元顺序p、q、r编号,极小项m7对应111即p∧q∧r,m6对应110即p∧q∧¬r,m1对应001即¬p∧¬q∧r,m3对应011即¬p∧q∧r。所以结果是 m1∨m3∨m6∨m7,写成 Σ(1,3,6,7)。主合取范式则是补集对应的极大项合取,即 Π(0,2,4,5)。
注意:主析取范式里每个极小项必须包含全部变元,缺一个就错。很多人化简到最后写成 p∨q 就交卷了,那是析取范式,不是主析取范式。补全的办法是给缺变元的项乘上 (r∨¬r)。
推理证明的格式分很值钱。标准写法是分三列:序号、命题、依据。依据分两类,一是前提引入(写P),二是由前面若干行通过推理规则得到(写T加上行号)。常用推理规则包括假言推理(p→q和p推出q)、拒取式(p→q和¬q推出¬p)、析取三段论(p∨q和¬p推出q)、附加、化简、合取。
举个完整例子。前提:(p∨q)→r,¬r。结论:¬p∧¬q。
第一步,¬r 是前提,写P。第二步,(p∨q)→r 是前提,写P。第三步,由第二步和第一步用拒取式得 ¬(p∨q),写T(1)(2)。第四步,由第三步用德摩根律得 ¬p∧¬q,写T(3)。
谓词逻辑这边,量词的否定是高频点。¬∀x P(x) 等价于 ∃x ¬P(x),¬∃x P(x) 等价于 ∀x ¬P(x)。记住"否定进去,量词翻转"这八个字,这类题基本不会错。
3.4 代数系统:一套流程判断"是不是群"
代数系统之所以让人头疼,是因为它抽象。但考试涉及的判断流程其实非常固定,我把它整理成一张流程表。
| 判断目标 | 需要验证的条件 |
|---|---|
| 半群 | 运算封闭 + 结合律 |
| 含幺半群 | 半群 + 有幺元 |
| 群 | 含幺半群 + 每个元素有逆元 |
| 阿贝尔群 | 群 + 交换律 |
有限集上的运算,最直接的判断方法就是把运算表列出来。检查封闭就是看表里所有结果是否都在集合内;检查结合律比较麻烦,一般题目会给一个已知结合的运算(比如加法、乘法、模运算),不需要你验证;幺元就是找表里哪一行哪一列完全等于表头;逆元就是对着幺元找。
举个例子。整数集Z6关于模6加法构成群,幺元是0,每个元素的逆元是6减去它本身(0的逆元是0)。但Z6关于模6乘法不构成群,因为2没有逆元(2乘以任何数模6都不可能等于1)。这种反例要能随口说出来,因为考题很爱让你举例子。
子群判定用一次判定法最省事:H是G的非空子集,如果对任意a、b∈H,都有a*b⁻¹∈H,那H就是子群。这个判据一下子省掉了封闭性和结合律的验证。比如Z6加法群中,H={0,3}是子群,因为0-0=0,0-3=3,3-3=0,3-0=3,全部落在H里。
循环群和拉格朗日定理是配套考的。循环群由一个元素生成,记作 。在Zn加法群里,生成元的个数和n有关:与n互素的元素才是生成元。比如Z6的生成元是1和5,只有两个。拉格朗日定理说子群的阶整除群的阶,所以6阶群的子群阶数只能是1、2、3、6。这个定理经常用来排除错误选项——如果题目说某个6阶群有一个4阶子群,直接判定错误。
格与布尔代数部分,抓住定义就行。偏序集里任意两个元素都有上确界和下确界,就叫格。如果一个格还满足分配律,就是分配格;如果每个元素都有补元,就是有补格;既是分配格又是有补格,就是布尔代数。布尔代数的经典例子是幂集格:集合A的所有子集在包含关系下构成布尔代数,补元就是集合的补集。
3.5 组合计数与递推:容斥、鸽巢与特征方程
组合计数看着散,其实就三大工具。
容斥原理处理"至少满足一个条件"的计数。公式是:总数等于各单项之和减去两两交集之和,加上三三交集之和,以此类推。经典例子:1到100中能被2或3或5整除的数有多少个?能被2整除的50个,能被3整除的33个,能被5整除的20个;两两交集,能被6整除的16个,能被10整除的10个,能被15整除的6个;三三交集,能被30整除的3个。所以总数是50+33+20-16-10-6+3=74个。算的时候注意取整,100除以3等于33.33,取33。
鸽巢原理处理"必然存在"的证明题。基本形式是n+1个物体放进n个盒子,至少有一个盒子装两个以上。推广形式是m个物体放进n个盒子,至少有一个盒子装不少于⌈m/n⌉个。考试常见的问法是"至少取多少个点才能保证有两点距离小于1",这时候你要先把区域划分成若干个小块,让同一块内任意两点距离都小于1,然后取"小块数加一"。
递推关系求解有固定套路。形如 aₙ = c₁aₙ₋₁ + c₂aₙ₋₂ 的递推,写出特征方程 x² - c₁x - c₂ = 0,求根。两个不同实根,通解是 A·r₁ⁿ + B·r₂ⁿ;重根,通解是 (A + Bn)·rⁿ;代入初始条件解出A和B即可。带非齐次项的递推,比如汉诺塔的 h(n) = 2h(n-1) + 1,可以先用累加法观察规律,得出 h(n) = 2ⁿ - 1,再用归纳法验证。
提示:递推题里最容易错的是初始条件。比如斐波那契从 n=1 开始还是从 n=0 开始,不同教材的约定不一样。做之前先看题干的定义,别凭记忆下笔。
4. 高频失分点速查与考场自救
4.1 错因速查表:这些坑每年都有人踩
我把自己见过的高频错因整理成一张表,考前半小时扫一遍,能救回不少分。
| 失分点 | 具体表现 | 正确做法 |
|---|---|---|
| 关系性质混淆 | 把反对称当成"不对称" | 反对称只要求不能同时有(a,b)和(b,a)(a≠b) |
| 传递闭包漏边 | 只迭代一轮就交卷 | 反复迭代到矩阵不再变化 |
| 欧拉判定漏条件 | 只看度数忘记连通性 | 连通 + 偶度,两个条件都要 |
| 主析取范式不完整 | 极小项缺变元 | 每项必须含全部变元 |
| 群判断漏逆元 | 只验证封闭和幺元 | 四个条件逐条过 |
| 子群判定用错定理 | 去验证封闭性 | 用非空 + a*b⁻¹∈H |
| 容斥漏加三交集 | 只减不加 | 交替加减,符号别丢 |
| 递推初始条件用错 | 按记忆代n=0 | 以题干定义为准 |
这张表里最值得单独说一句的是"群判断漏逆元"。很多题目给的运算表看起来很像群,封闭性和幺元都对,但就是有一两个元素没有逆元。判断时一定要逐个元素找逆元,别看一眼就下结论。
4.2 卡壳三分钟自救流程
考场上卡住是常态,关键是有没有一套自救流程。我的做法是三步走。
第一步,把题干里的关键词圈出来。问"是不是群",圈"群";问"最少几个顶点",圈"最少";问"证明",圈"证明"。很多时候卡住是因为看错了问法,把"求主合取范式"看成了"主析取范式"。
第二步,把能写的定义先写下来。证明题尤其如此,哪怕你不会证,把相关定义抄上去也可能拿到步骤分。判断类的题,把判定条件列出来,逐个打钩,往往列到一半思路就来了。
第三步,换一道题。离散数学的卷子里,相邻两道题往往属于不同模块,卡在关系题里出不来,先去做图论题,回来的时候脑子已经换了个频道。
超过十分钟还是没思路,就放弃,把时间留给检查。检查的价值很高,尤其是计算题,重新算一遍传递闭包或者最短路,能抓出不少低级错误。
4.3 证明题的格式分怎么拿
证明题是很多人的噩梦,但它的给分是分档的:结论正确、过程完整给满分;结论正确、过程有跳步给大部分分;思路对但没做完给部分分;只写了定义给少量分;空白给零分。
所以证明题的第一原则是不要空着。哪怕你只会开头,也要把"设……"、"由题意知……"写出来,把要用到的定理名字写出来。判卷老师看到你知道用哪个定理,通常会给步骤分。
第二个原则是每一步都写依据。写"由拉格朗日定理可知",写"由德摩根律可得",这些依据就是你的得分点。有些学校的判卷标准里,"依据"本身就是独立的分项。
第三个原则是结论要单独写一行。很多人推导到最后一句"所以成立"混在段落里,判卷老师扫的时候容易漏掉。把结论单独拎出来写一行,显眼、清晰。
5. 四周冲刺排期与工具取舍
5.1 四周排期表
如果你现在距离考试还有四周,按下面这个节奏走。
| 周次 | 主要任务 | 每日投入 | 阶段目标 |
|---|---|---|---|
| 第1周 | 过教材定义 + 按章节刷复习题 | 2小时 | 概念清晰,判定类题全对 |
| 第2周 | 按题型集中突破 + 建立错题本 | 2.5小时 | 计算类题形成固定套路 |
| 第3周 | 限时套卷 + 证明题专项 | 3小时 | 能在规定时间内做完一套 |
| 第4周 | 错题回炉 + 查漏补缺 | 1.5小时 | 高频考点零失误 |
这个排期的逻辑是"先广后深再收口"。第一周铺开面,第二周集中火力打几个薄弱点,第三周练整体节奏,第四周只做减法,把已经会的东西稳住,不再碰新内容。
如果你只剩两周,就把第一周和第二周压缩成四天,第三周的两套限时卷必须保下来,其余时间全部给错题本。
5.2 工具选型:纸笔、表格软件与刷题节奏
工具这块我想说点实在的。离散数学这门课,纸笔是最优解,没有之一。原因很简单,判定关系性质要画矩阵,求最短路要画表格,画哈斯图要打草稿,这些操作在屏幕上做效率极低。
我自己复习和带学生的做法是:A4纸对折,左半边做正式演算,右半边打草稿。草稿区画关系图、写临时计算,正式区只写最终答案和关键步骤。这样复盘的时候一眼就能看到自己的思路轨迹。
表格软件(比如电子表格)在一种情况下有用:整理"考点-题号"映射表和错题本。手工做表改起来麻烦,用电子表格可以随时排序筛选,看看哪个考点错得最多。但仅限这一步,计算过程别用它。
至于刷题 APP 和视频课,我的态度是可以用,但别当主力。视频课适合在你完全没学过某个模块时快速入门,比如代数系统你一点印象都没有,找一节课过一遍定义是划算的。但看完之后一定要立刻动手做题,光看不练,看完三天就忘干净。
5.3 复习题的进阶用法
最后分享一个复习题的进阶用法:反向出题。
等你把复习题都做熟了,试着挑几道典型题,把条件和结论对调,自己出几道新题。比如原题是"已知关系矩阵,判断性质",你改成"已知关系是等价关系,写出一个满足条件的关系矩阵"。这个动作会逼着你从命题人的角度想问题,对知识的理解会深一层。
还有一个用法是给每道题标难度系数。一星是看一眼就会,三星是想两分钟能会,五星是完全没思路。考前只复习三星题,一星题不用碰,五星题看命。这个策略能让你把有限的时间花在最有产出的地方。
我个人带复习课时最常强调的一句话是:离散数学(本)复习题不是题库,是说明书。它告诉你命题人关心什么、用什么方式问、给多少分。你把这句话想明白了,四周时间足够从零基础走到稳过线。真正拉开差距的从来不是谁刷的题多,而是谁把那几十个固定动作练到了不需要思考的程度。