简介:离散数学证明题专项训练是一份面向高校计算机及相关专业学生的典型证明题练习资料,内容覆盖群论、逻辑学、集合论、关系论与函数论等核心模块。资料以完整证明过程为主干,包含群交换性判定、子群与等价关系验证、复合函数单射与满射性质、关系复合对称性判定等常见题型,每题均给出逐步推理步骤:例如群论中通过逆元与结合律证明交换群,集合论中借助补集与交并运算恒等式推导差集与交集为空集的等价关系,关系论中利用复合定义验证对称性与等价类划分。适合用于期末复习、考研备考或课堂答疑时的证明题强化训练。文件包内共1个doc文件,大小约107KB,集中收纳了11道典型证明题及其规范解答,结构紧凑、便于随时翻阅与对照练习。已有490人浏览/学习,适合需要快速梳理离散数学证明方法、提升逻辑推理严谨度的学习者使用。
1. 离散数学证明题不是“背会了就能写”,而是“证据链”训练
先放一个反直觉的结论:离散数学证明题卡住你的,通常不是“没听懂定义”,而是“拿到题不知道第一行该写什么”。教材例题你能看懂,但例题和作业题之间永远隔着一条“换了个表述就找不到对应方法”的鸿沟。考场上常见的翻车现场是:定义倒背如流,真值表画得飞快,证明题却写满两页纸,被老师在关键推理处画了个问号。
这个标题要解决的是两件事:一是“离散数学里证明题怎么分类”,二是“每种分类的证据链怎么编”。它服务的读者非常具体:正在期末复习的本科生,刚学完集合和数论、刷题刷不动的高年级同学,以及想给学弟讲题但自己也讲不利索的人。我后面会按“方法怎么选 → 题型模板 → 书写规范 → 排查清单 → 进阶试探”的顺序,给你一套能直接照做的训练流程。把“凭感觉写”换成“按证据链写”,练上两周你会发现证明题不再靠玄学。
2. 证明方法的选用:先判断命题长相,再决定动笔方向
2.1 四种证明方式的适用场景与起手式
离散数学的证明题,绝大多数跑不出四类:直接证明、反证归谬、数学归纳、构造性证明。你不需要每种都精通,但你必须在动笔前猜中它该用哪类。我一般不看题目内容,先看“结论的形态”:结论能用前提里的条件一步一步推出来,就走直接;结论带“不存在、至多、唯一、无理数”这类否定味,反证法最顺手;命题跟自然数 n、递推序列或递归结构有关,就上归纳法;要证的是“存在某个对象满足条件”,那就找构造。
| 证明法 | 结论长什么样 | 起手第一句 |
|---|---|---|
| 直接证明 | 前提给出可运算的等式、包含关系、整除关系 | “任取 x∈S,由条件可知……” |
| 反证法 | 结论含“不是、不存在、至多、唯一” | “假设结论不成立,即存在 x 使得……” |
| 归纳法 | 命题对一切 n∈N 成立,且 n+1 步能承接 | “对 n 用归纳法。基础:n=1 时……” |
| 构造法 | 存在性命题,需要给出一个具体对象 | “取 x=…,下面验证它满足全部条件” |
选错方法的代价是写很久推不出来,最后在考场上干瞪眼。我的习惯是:动笔前先用 30 秒问自己——“如果这题是错的,我找反例的突破口在哪个词”。如果 10 分钟内找不到反例,说明命题大概率成立,再回头看结论形态选方法。这套判断不依赖灵感,是可以靠刷题练出来的“条件反射”。
2.2 翻译表:先把中文命题改写成逻辑表达式
很多同学跳过关键的一步:没把中文变成逻辑式就急着推。离散数学的证明题几乎都带全称量词和存在量词,不翻译清楚,推理时变量的取值范围会乱。我建议每次动笔前,先在草稿纸上把题目里的关键词翻译出来,翻译完就知道该往哪个方向走。
| 中文表述 | 逻辑翻译 | 对证明的影响 |
|---|---|---|
| 任意 / 所有 / 每一个 | ∀ | 证明开头必须“任取”,并给变量设取值范围 |
| 存在 / 有些 / 至少一个 | ∃ | 通常需要构造或特选,不能笼统带过 |
| 当且仅当 / 等价 | ↔ | 必须拆成两个方向分别证明 |
| 如果…那么… | → | 假设前件成立,推后件 |
| 整除 a | b | ∃k∈Z,b=ak |
| 偶数 / 奇数 | n=2k / n=2k+1 | 把奇偶变成可加减的代数形式 |
翻译过后,下一步往往自己就跳出来了。比如题目说“如果 a|b 且 a|c,则 a|(b+c)”,改写后你看到的是两个存在量词和一个代数式:b=ak,c=al,所以 b+c=a(k+l)。这就是直接证明的证据链,整道题其实在翻译完那一刻已经结束八成。
每个方法适合什么题,先用上面的表格记住,再靠翻译把题目化成可运算的形式。方法选对了,后面的证明才不会跑偏——这条经验换到任何一本离散教材的习题集上都能用。
选型训练的“可抄作业”操作:拿章末习题,不看题号,只读题干,在题干边上标“直 / 反 / 归 / 构”,然后和答案对照。练到 30 题之后,你判断的准确率会明显提升。这一步很关键,因为真正难的证明题不是“推理过程难”,而是“看不出该用哪个方法”。
3. 按题型专项练:集合、逻辑、数论与归纳的高频证明模板
3.1 集合相等:双向包含的完整证明写法
题干里出现 A=B、A⊆B、A∪B = A∩B 这种,就用这套模板。规则只有一条:证集合相等,标准做法是拆成两个包含方向。常见菜鸟写法是逐元素列举,但无限集合没法列举,必须用“任取”。
证明 A = B 的标准骨架 ---------------------------------------- 已知:A 与 B 是某全集 U 的子集 欲证:对任意 x,x∈A 当且仅当 x∈B (1) 证 A⊆B: 任取 x∈A。 由 A 的定义(写题目给的性质), 可知 x 满足性质 P。 P 结合已知定理,推出 x∈B。 故 A⊆B。 (2) 证 B⊆A: 任取 x∈B。 由 B 的定义,同理推出 x∈A。 故 B⊆A。 (3) 由 (1)(2),A⊆B 且 B⊆A, 按集合相等定义,A = B。逻辑说明:这里的核心不是“列举所有元素”,而是“任取”两个字的威力。只要 x 是任意取的,没有附加任何特殊条件,那么推出的结论就对集合里所有元素成立。每一步都要引用依据——要么是题目给的集合定义,要么是已知的分配律、交换律。没有依据的跳步,在阅卷时会被直接划掉。
参数说明:如果你要证的是具体题目,把“性质 P”替换成题目里集合的定义即可。比如证 A∩(B∪C)=(A∩B)∪(A∩C),(1) 里任取 x∈A∩(B∪C),得到 x∈A 且 x∈B∪C,再按“x∈B 或 x∈C”分两种情况,分别推出 x∈A∩B 或 x∈A∩C。拆成两种情况是这类题唯一的难点,其余全是搬运定义。
3.2 逻辑等价与蕴含:优先转成推理序列
要求证 P↔Q 或 P→Q 时,两个工具可选:真值表验证和推理规则序列。真值表适合验证结论,不适合当证明过程,因为考试要的是“你能从 P 走到 Q”。我推荐用推理规则,把每一步写成“由某条规则,得到”。
先记住最常用的四条规则:
| 规则名 | 形式 | 一句话记忆 |
|---|---|---|
| 假言推理 | 若 P→Q 且 P,则 Q | 前件真,后件必真 |
| 假言三段论 | 若 P→Q 且 Q→R,则 P→R | 条件可以接龙 |
| 德摩根律 | ¬(P∨Q) ↔ (¬P∧¬Q) | 否定分配到每个量上并变号 |
| 双重否定 | ¬¬P ↔ P | 负负得正 |
拿德摩根律本身当例题:证明 ¬(P∨Q) ↔ (¬P∧¬Q)。这个命题是双向的,所以拆成两步。
(1) 证 ¬(P∨Q) → (¬P∧¬Q): 假设 ¬(P∨Q) 成立。 若 P 成立,则 P∨Q 成立,与假设矛盾。 故 ¬P 成立。 同理,¬Q 成立。 于是 ¬P∧¬Q 成立。 (2) 证 (¬P∧¬Q) → ¬(P∨Q): 假设 ¬P∧¬Q 成立。 若 P∨Q 成立,分两种情况: 情况一:P 成立,与 ¬P 矛盾; 情况二:Q 成立,与 ¬Q 矛盾。 两种情况都矛盾,故 P∨Q 不成立, 即 ¬(P∨Q) 成立。 (3) 两个方向都成立,所以等价。逻辑说明:第 (1) 步里的“若 P 成立,则 P∨Q 成立”用的是“附加”规则,这是逻辑证明里允许的。第 (2) 步的分情况讨论,本质是把“或”的两种可能性都堵死,反证法在每个分支里各用了一次。整个证明没有使用真值表,但每一步都站得住。
参数说明:遇到更复杂的等价式,按“先拆方向,再在方向内用反证或直接推”处理。注意:¬(P∨Q) 与 ¬P∧¬Q 的等价关系本身是德摩根律的内容,所以你用它之前要先确认题目允许使用哪些已证规则。老师没教过的规则,尽量不要在证明里当默认工具,否则会踩“循环论证”的坑。
3.3 整除与同余:把算式变成命题的代数模板
整除类的证明题,基本套路只有一招:把“a|b”翻译成“存在整数 k,使得 b=ak”,然后做代数变形。这个翻译一旦落地,题目就从“数论”变成了“多项式运算”。
例:若 a|b 且 a|c,证明 a|(b+c)。 证明: 由 a|b,存在整数 k1,使 b = a·k1。 由 a|c,存在整数 k2,使 c = a·k2。 于是 b + c = a·k1 + a·k2 = a·(k1 + k2)。 因为 k1、k2 是整数,所以 k1+k2 也是整数, 由整除定义,a|(b+c) 成立。逻辑说明:最后一步“k1+k2 是整数”不能省。很多同学写到这里直接说“显然成立”,但阅卷标准恰恰看这句话——因为整除定义要求“存在整数”,你必须明确指出来。这就是证据链的完整性。
参数说明:同余类题目同理,比如证“若 ac≡bc (mod m),且 gcd(c,m)=1,则 a≡b (mod m)”。翻译后是 m|(ac−bc),即 m|c(a−b)。因为有 gcd(c,m)=1,才能从 m|c(a−b) 推出 m|(a−b)。这里的“互素条件”就是整个证明的命门,去掉它命题不成立,这一步必须单独写出理由,否则证明不完整。
这类题练的是“把看不懂的数论语言翻译成可运算的代数式”的能力。按我的经验,连做 10 道整除证明,之后再看到“a|b”你脑子里会自动蹦出“b=ak”,这一步熟练之后,数论证明题的难度直接腰斩。
3.4 归纳法:针对“一切 n 成立”的固定三步
归纳法适用条件非常明确:命题里有“对所有正整数 n 成立”“与 n 有关的递推”“n 层结构”这类字眼。写法永远是三步:基础步、归纳假设、归纳步骤。
例:证明 1 + 2 + … + n = n(n+1)/2 对一切正整数 n 成立。 基础步: 当 n=1 时,左边 = 1,右边 = 1·2/2 = 1。成立。 归纳假设: 假设 n=k 时命题成立,即 1 + 2 + … + k = k(k+1)/2。 归纳步骤: 要证 n=k+1 时成立。 左边 = 1 + 2 + … + k + (k+1) = [k(k+1)/2] + (k+1) ← 这里用到了归纳假设 = (k+1)(k/2 + 1) = (k+1)(k+2)/2 = 右边。 故 n=k+1 时也成立。 由数学归纳法,命题对一切正整数 n 成立。逻辑说明:标箭头那一行是整道题的分水岭。如果在归纳步骤里你没有显式地把“归纳假设”代进去,而是从头把公式又推了一遍,那这叫“假归纳”,会被扣分。归纳法的本质是“站在 k 的肩膀上够到 k+1”,不踩这个肩膀,证明就失去了归纳结构。
参数说明:有些题目要改成强归纳,也就是假设“对所有小于等于 k 的情形成立”。判断时机:当 n=k+1 的情况需要用到 n=k−1 或更早的结果时,就必须换强归纳,否则推不动。图论里的树、序列递推题经常触发这个条件,看到就用,不丢人。
4. 证明书写规范:从“知道”到“写对”的中间一步
4.1 四段式结构与符号纪律
我批改过不少同学的证明草稿,发现一个通病:会做,但写出来的过程没法看。不是逻辑错,而是跳步太多、符号混乱。证明不是给自己看的思维草稿,是给别人检查的证据链,所以书写格式必须有纪律。我的标准结构是四段式。
| 段落 | 写什么 | 常见错误 |
|---|---|---|
| 已知 | 抄题目条件,并写明每个符号的取值范围 | 变量没说属于哪个数集 |
| 欲证 | 把结论改写成逻辑表达式 | 直接抄原句,没有翻译量词 |
| 推理 | 每一步一个“所以”,紧跟依据 | 推导跳步,或依据只写“显然” |
| 结论 | 重新声明原命题成立 | 证完不加收尾,像没写完 |
推理段落里,我给自己立了三条“符号纪律”。第一,每个新变量首次出现必须说明取值范围,比如“任取整数 k”,不能只写 k。第二,每个“所以”后面必须跟依据,依据可以是定义、已知条件、已证命题或者某条定理,不允许裸奔的“显然”。第三,整个证明里同一个符号只能代表同一个对象,不允许中途偷换含义。
这套纪律看起来很琐碎,但它就是“严谨性”的实操版本。你去看教材上的例题,几乎每一行都在暗中遵守这三条。学生和老师的差距,往往不是思路,而是这些纪律执行得彻不彻底。
4.2 没有老师批改时,怎么自己给自己挑毛病
自学的同学最难的是没人指出“哪里写得不严谨”。我的办法是:写完证明不急着对答案,先按下面的清单逐行自查。这个方法比对着答案看十遍都管用。
| 自查问题 | 合格标准 | 不合格处理 |
|---|---|---|
| 每一步有依据吗 | 每个“所以”都能说出出处 | 标出缺失处,补写 |
| 量词翻译对了吗 | 任意/存在的位置和否定都对 | 回到 2.2 的翻译表重写 |
| 归纳假设用上了吗 | 归纳步骤里有代入假设的动作 | 重写归纳步骤 |
| 有循环论证吗 | 每个依据都不包含待证结论 | 找到循环点,换路重推 |
| 结论收尾了吗 | 最后的“故命题成立”写全了 | 补收尾句 |
我一般是把证明写在一张 A4 纸上,每一行的右侧留两厘米空白,自查时在空白处填“依据”。填不出来的那一行就是问题所在,涂掉重写。这个方法的残酷之处在于:如果你哪一行填不出依据,那行就大概率是蒙的。
做题时最忌讳“感觉对了就过”。按上面的清单过一遍,最多多花十分钟,但你能发现至少一个隐藏的跳步。把这些跳步汇总起来,就是你自己的高频错误库——这比刷十道新题的价值还大。
5. 离散证明题的常见翻车点与排查清单
5.1 用“代几个特例”冒充一般证明
现象:题目要证“所有正整数 n 都满足某性质”,解法里写“当 n=1、2、3 时都成立,所以命题成立”。或者证集合包含时,举了三个元素属于集合,就说包含关系成立。
原因:把全称量词“∀”错误地理解成了“我试过的样本都满足”。在离散数学里,无限集合没法靠枚举证明,“所有”必须用“任取”来覆盖。特例只能当直觉来源,不能当证据。
解决:回到 2.2 的翻译表,看到“任意”就强制自己写“任取 x∈S,没有附加任何特殊条件”,然后只用集合定义和已知定理推。特例留着找反例用:如果找到一个反例,直接推翻命题;找不到反例,再走正式证明。
5.2 反证法的否定没写对,开局就崩
现象:要证“若 P 则 Q”,反设时写成“若 P 则不 Q”,但量词位置错了——把“存在某个 x 满足条件”写成了“所有 x 都不满足条件”。结果推了半天,矛盾不出现,或者推出来的矛盾跟假设无关。
原因:没有先把命题写成逻辑表达式就开始反设。中文的否定容易混,尤其题目里同时出现“任意”和“存在”时,凭语感很容易写反。
解决:动笔前先把原命题写成逻辑式,再对逻辑式做否定。两句口诀:∀ 变 ∃,且变或。比如原命题是“∀x (P(x) → Q(x))”,否定就是“∃x ¬(P(x) → Q(x))”,再等价变形为“∃x (P(x) ∧ ¬Q(x))”。这一步写对了,反证法才有米下锅。
5.3 归纳法的“假归纳”:归纳假设只写在纸上,没用进推理
现象:归纳步骤里从头到尾没有出现“由归纳假设”这几个字,而是把 n=k+1 的情况当作新题独立推了一遍。表面看结论是对的,但整个证明失去了归纳结构。
原因:没理解归纳原理。归纳假设不是装饰品,它是可以当“已知条件”使用的命题。不用它,等于放弃了归纳法。
解决:写归纳步骤时,强制先写“由归纳假设,可知当 n=k 时……”再把这一项代入目标式子。有个笨办法很有效:在草稿上把归纳假设里那个表达式用下划线画出来,然后盯住目标式里哪一部分能替换成它。替换这个动作一旦发生,归纳法的结构就出来了。
5.4 循环论证:用自己证明自己
现象:要证 A 成立,推理过程中写“因为 B,所以 A”,而 B 的成立又需要依赖 A。常见于逻辑等价题里,用结论本身当推理依据。
原因:把直觉当依据。很多命题看起来很“显然”,于是直接拿它做推理跳板,没有意识到这个“显然”就是题目要证的结论。
解决:给推理链里的每个依据编号,问自己三个问题:它是定义吗?它是已知条件吗?它是已经证过的命题吗?三个都不满足,这条依据就不能用。如果发现依据里有待证结论,必须换一条路,比如改用反证法或换另一个等价定义。循环论证是阅卷时零分的重灾区,宁可多写两步绕路,也不要用结论推结论。
6. 进阶:遇到不会的证明题,第一步应该做什么
当你学会了套路,还会撞上没见过的新题。这时最怕的是盯着题目发呆,或者在直接证明里硬推。我的试探顺序是固定的五步,按顺序执行,大多数题在第三步就能露出破绽。
第一步,花 30 秒尝试构造反例。如果找到反例,题目本身有问题,不用证明;找不到,说明命题大概率成立,开始认真证。第二步,判断结论形态,回看第 2 章的方法选择表,定下用直接、反证还是归纳。第三步,拿草稿纸做 2.2 的翻译,把题干里的“任意、存在、整除、包含”全部化成逻辑式和代数式。第四步,从结论倒推:假设结论已经成立,最后一步需要什么条件,再倒着找这个条件能不能由已知推出。第五步,前三步都失效时,书面试一次反证——假设结论不成立,推导到某个具体矛盾。反证法的好处是即使失败,你也会收获一条“哪些路走不通”的线索,这时再换构造法往往有灵感。
最后说一个训练习惯。拿一周时间,每天固定挑三道证明题,限时 20 分钟一道,写完必须按第 4 章的清单逐行自查,然后才对答案。这个过程的前三天很痛苦,因为你可能会发现自己一半的“会做”其实是“看过答案觉得合理”。坚持到第五天,你会开始主动在题干上标注量词和关键词,下笔速度会明显加快。我的血泪经验是:考前临时抱佛脚背例题的收益,远不如平时逼自己无答案写三道题、再按依据清单复核来得实在。这一步是最慢的捷径,希望帮到你。
本文还有配套的精品资源,点击获取