离散数学这门课,挂科率常年居高不下,而挂了的人里,一大半都是栽在第一章的。别不信,我当年翻教材,看到“命题”两个字觉得自己初中语文就学过,简单得很,结果翻到“命题公式与真值表”直接懵圈。加上“蕴含值”这几个字,我反复琢磨了好几天,才把 p→q 那张表的逻辑给彻底理顺。后来回头再看,这一章真心不难,难的是没人把那些抽象符号翻译成人话。这篇就把我踩过的坑、总结出来的方法一次性写清楚,把命题、命题公式、真值表、蕴含式和逻辑推理公式这些核心考点串起来,正在备考02324或者学离散数学入门的人,直接照着往下读就行。
1. 第一章到底在讲什么:命题与命题公式的定位
1.1 为什么很多人会在这一章放弃
自学和自考的朋友最容易在这里受挫,原因是第一章看起来全是一些定义和小符号,没有代码、没有图形、也没有特别直观的物理意义,学起来觉得“学了也不知道能干嘛”。事实上,离散数学整门课的底层逻辑就是形式化:把一句人话翻译成符号,把符号按规则推导,最终得出一个可靠的结论。这个过程在后续的集合论、关系、图论、数理逻辑章节里都会反复出现。你现在看到的这些符号,本质上就是一台小推土机,学会它,后面整片工地都能平。
另一个劝退点在于教材。市面上很多离散数学教材第一章写得过于精炼,尤其左孝凌老师的版本,前后逻辑很紧密,可初学者看的时候容易丢掉“为什么这么定义”的线索,于是只能硬背。硬背的后果就是:定义记得住,题目做不对。所以学这一章,最忌讳光背结论,要把每个符号背后对应的自然语言场景吃透。
1.2 命题:能判断真假的陈述句
命题的定义很简单:能判断真假的陈述句。这里有两个关键词,一个叫“判断真假”,一个叫“陈述句”。只有陈述句才可能是命题,疑问句、祈使句、感叹句通通不是。比如“今天几号?”是疑问,没有真假;“把门关上”是祈使,也没有真假。反过来,“地球绕着太阳转”是命题,真值为真;“1加1等于3”也是命题,虽然它是假的,但它有明确真假,所以依然是命题。
我见过很多同学在这个概念上纠结:“这句话我看不出真假,那它还是不是命题?”记住,判断命题只需要问两件事:它是不是陈述句?它在逻辑上是否具有确定的真假?至于你现在能不能证明它的真假,那是另一回事。比如“火星上有生命”这句话,以目前的科学手段还没有定论,但它在逻辑上仍然是真假二选一,所以它依然是命题。理解这个区别,后面做选择题才会稳。
1.3 原子命题与复合命题
日常一句话往往包含好几种意思,离散数学里要做的是把它拆成最小单元。每个不能再拆分的陈述句叫原子命题,通常用小写字母 p、q、r 表示;用联结词把原子命题连接起来,就成了复合命题,比如“今天下雨并且气温低于10度”就是 p∧q 这种结构。
学习时建议给自己立一个规矩:拿到任何一段中文描述,先圈出里面的原子命题,再判断它们之间是什么逻辑关系。这个习惯练熟之后,符号化会非常快。很多同学考试时丢分,不是不懂联结词,而是不会拆句子,把“并且”和“或者”用错了符号,一步错步步错。
2. 五个联结词,一张表全记住
2.1 否定、合取、析取:先解决三件小事
日常语言里我们经常会说“不是”“并且”“或者”,在命题公式里它们对应三个最基本的联结词。
否定用 ¬p 表示,读作“非p”,作用是取反。p 真则 ¬p 假,p 假则 ¬p 真。这里容易出错的是双重否定,¬¬p 等价于 p,很多人做题时会忘掉这一条,其实它就是在提醒你:一个句子说“不是不”,最后还是回到原意。
合取用 p∧q 表示,意思是“p并且q”,只有 p 和 q 同时为真时,整个式子才为真。这个跟日常理解的“并且”一致,不太容易踩坑。
析取用 p∨q 表示,意思是“p或q”,只要 p、q 中有一个为真,整个式子就为真。注意,这里的“或”是包含或,不是排斥或。日常生活中的“要么你去,要么我去”在逻辑里其实是“不能同时成立”,但离散数学里 p∨q 可以用“你和我都去”这种情况。考试中经常考这个点,它是一个典型的“反直觉陷阱”。
2.2 蕴涵和等价:两个反直觉的主角
重点来了,很多人前三个联结词都懂,一到蕴涵就乱了。蕴涵写作 p→q,读作“如果p,那么q”。它的真值表只有一种情况为假:p真且q假;其他三种情况全部为真。也就是说,如果前件 p 是假,无论 q 是真是假,整个蕴含式都为真。这个规则看起来离谱,但它是逻辑学里的“善意推定”:一个承诺只有在“条件成立但结果没兑现”时才被判定为违约;条件本身没发生,承诺自然不算被打破。
我举个直观例子,“如果明天下雨,运动会就取消”。如果明天没下雨,运动会就算照常举行,这句话也不算说谎。你可以把 p→q 理解成一条“合同条款”,只有前件成立后件落空才算违约。理解了这个原则,你再也不会把蕴含式的真值表记反。
等价用 p↔q 表示,读作“p当且仅当q”,意思是 p 和 q 同真同假时为真。简单说,它要求两边步调完全一致。等价这个联结词其实可以由两个蕴涵组合得到:p↔q 等价于 (p→q)∧(q→p),这条结论在后面证明题目时会经常用到。
2.3 联结词优先级:没有括号也能按顺序算
一个公式如果写成一长串,比如 ¬p∨q→r,那到底先算谁?离散数学里默认的优先级从高到低是:¬ 最高,然后是 ∧,再是 ∨,最后是 → 和 ↔。所以 ¬p∨q→r 先算 ¬p,再算 ∨,最后算 →。不过不同的教材对 ∧ 和 ∨ 之间的优先级约定偶尔有差异,保险起见,我自己做题时只要不是特别确定的公式,都会手动加括号,这样既不会算错,阅卷老师看着也清楚。
考试时见过不少同学因为优先级忘加括号,真值表列到一半就乱了。我的建议是:平时练习时,拿到公式先把括号补全,补好一行括号,等于提前拆好了计算顺序。
3. 命题公式与真值表:无脑照做也能拿分
3.1 什么是合法命题公式
命题公式也叫合式公式,不是随便把几个符号拼在一起就能当公式用。它的合法定义是递归的:命题变元本身是公式;如果 A 是公式,那么 ¬A 也是公式;如果 A 和 B 是公式,那么 A∧B、A∨B、A→B、A↔B 也都是公式。只有通过有限次这样的规则组合出来的式子,才叫合法的命题公式。
像 p∧、∧q、p→ 这类写法,就是典型的非法公式,因为它们缺少操作数或者只写了联结词。判断一个公式合不合法,最简单的方法是从右往左看它的结构,看最后一步操作能不能成立。这种题在客观题里经常出现,属于白送分,关键是别粗心。
3.2 真值表的完整列法
列真值表看起来简单,但行数和顺序一旦出错,整张表就白列了。标准流程分三步:
第一步,看公式里有几个不同的原子命题。有 n 个,就列 2 的 n 次方行。比如两个变元就列 4 行,三个变元就列 8 行。
第二步,按二进制顺序列出变元的所有真假组合。两个变元时依次是 (T,T)、(T,F)、(F,T)、(F,F),这种排列方式能保证不重不漏。
第三步,从括号最内层开始,逐列计算每个子公式,最后算出整个公式的真值。
我拿公式 (p∨q)→(¬p∧q) 来演示一遍。先写出变元的四行排列,然后依次算出各列:
| p | q | ¬p | p∨q | ¬p∧q | (p∨q)→(¬p∧q) |
|---|---|---|---|---|---|
| T | T | F | T | F | F |
| T | F | F | T | F | F |
| F | T | T | T | T | T |
| F | F | T | F | F | T |
整个计算过程中最容易出错的是先算外层再算内层,尤其是遇到否定号和括号叠在一起时。从内到外逐层算,等于把大问题拆成几个小问题,每一步只需要做一个简单判断,几乎不可能错。
3.3 重言式、矛盾式、可满足式
拿到一张真值表之后,下一步是给公式分类。如果公式在所有赋值下都为真,叫重言式,也叫永真式;在所有赋值下都为假,叫矛盾式,也叫永假式;只要至少有一种赋值为真,就叫可满足式。
这三类里,重言式最重要,因为后面学蕴含式,本质就是看“A→B”是否为重言式。例如 p∨¬p 不管 p 取真还是取假,结果都是真,所以它是重言式;p∧¬p 永远为假,是矛盾式。这两个例子虽然简单,但它们是判断复杂公式类型的基础模板。
注意:真值表法的计算比较简单,但考试时间有限。遇到三个以上变元的公式,老老实实列 8 行或者 16 行也行,只是要留足时间。
4. 蕴含值:热搜里最值钱的一个词
4.1 蕴含式与蕴含值到底在说啥
网上搜“离散数学蕴含值”的人特别多,说明这个词确实把大家卡住了。所谓蕴含值,其实就是蕴含式 A→B 的真值情况。如果 A→B 是重言式,我们记作 A⇒B,读作“A蕴含B”。注意,⇒ 和 → 是两码事:→ 是命题公式里的联结词,它算出来的是一个真值;⇒ 是元语言符号,表达的是一种逻辑关系,意思是“从 A 可以推出 B”。
很多同学把这两个符号混用,考试写推理过程时一会儿→一会儿⇒,逻辑上就乱了。我自己的记忆方法很简单:→ 参与运算,⇒ 表示结论。凡是在公式内部的都是 →,凡是在两句话之间表示推导关系的都用 ⇒。
4.2 三种证明蕴含式的方法
证明 A⇒B,本质就是证明 A→B 在所有赋值下都为真。常用的方法有三种,考试选哪种看题目给的条件。
第一种是真值表法。适合变元不超过三个、公式结构不复杂的题目。把 A→B 的每一行列出来,如果全是 T,则蕴含成立。这种方法简单直接,就是费时间。
第二种是前件真推导后件真。既然 A→B 在前件为假时自动为真,那我们需要担心的只有 A 为真的情况。于是只需要假设 A 为真,在这个假设下推出 B 也为真,那么蕴含就成立。比如证明 p∧q⇒p,假设 p∧q 为真,那么 p 真且 q 真,自然得到 p 真,所以蕴含成立。
第三种是后件假推导前件假。这也来自蕴含式的逆否性质,假设 B 为假,推出 A 为假,那么原蕴含成立。这招在处理结论比较复杂的题目时特别管用。
三种方法各有优缺点,我一般习惯先把公式看两秒,如果结构复杂就优先考虑第二、第三种方法,因为它们省去了一整张八行真值表的时间。
4.3 必须背下来的常见蕴含式
这一小节的内容可以说直接对应考试大题。下面这些蕴含式建议每天默写一遍,直到闭眼能写出来为止:
| 名称 | 蕴含式 |
|---|---|
| 化简式 | A∧B ⇒ A,A∧B ⇒ B |
| 附加式 | A ⇒ A∨B,B ⇒ A∨B |
| 假言推理 | A,A→B ⇒ B |
| 拒取式 | ¬B,A→B ⇒ ¬A |
| 析取三段论 | A∨B,¬A ⇒ B |
| 假言三段论 | A→B,B→C ⇒ A→C |
| 构造性二难 | (A→B)∧(C→D),A∨C ⇒ B∨D |
这些式子不是靠背定义就能记住的,最好结合具体例子去理解。比如假言推理就是“如果明天下雨,活动取消;明天确实下雨,所以活动取消”,这就是最朴素的推理链条。
提示:把这些蕴含式子当作你推理证明题的工具箱。考试时很多题目都不是让你证明一个复杂的等价关系,而是让你用这些现成的规则一步一步推下去。
5. 逻辑推理公式:证明题的武器库
5.1 四条基础推理规则
推理规则在考试中最大的用途是写证明题。你拿到一组前提,要通过若干步推导得出结论,每一步都必须有规则支撑,不能乱跳。
第一条是假言推理,也叫肯定前件:A→B 和 A 同时成立,可以推出 B。这是最常用的一条规则,几乎所有证明题都会用到。
第二条是拒取式:A→B 和 ¬B 成立,可以推出 ¬A。它的意思是,如果结果没有发生,那条件也没发生。比如“如果钥匙在口袋里,门就能打开;门打不开,所以钥匙不在口袋里”。有些同学会把这条和假言推理搞混,记一个口诀:肯定前件得出后件,否定后件得出否定前件。千万别反过来用,那是经典的逻辑谬误。
第三条是析取三段论:A∨B 和 ¬A 成立,可以推出 B。生活中很好理解,你说“要么喝茶要么喝咖啡”,又说“不喝茶”,那自然是喝咖啡。
第四条是假言三段论:A→B 和 B→C 成立,可推出 A→C。这就是中间人传递,像“A淘汰B,B淘汰C,那么A可以淘汰C”。
5.2 等价变换与置换规则
除了推理规则,证明题还经常用到等价变换。所谓等价变换,就是把公式中的一个子公式替换成与它等价的另一个公式,替换前后整个公式的真值不变。最核心的几条等价式必须烂熟于心:
- 双重否定律:¬¬A ⇔ A
- De Morgan律:¬(A∧B) ⇔ ¬A∨¬B,¬(A∨B) ⇔ ¬A∧¬B
- 蕴含等值式:A→B ⇔ ¬A∨B
- 逆否等值式:A→B ⇔ ¬B→¬A
- 等价等值式:A↔B ⇔ (A→B)∧(B→A)
- 吸收律:A∨(A∧B) ⇔ A,A∧(A∨B) ⇔ A
这里最值钱的是蕴含等值式 A→B ⇔ ¬A∨B。它会帮你把一大片蕴含符号全部转成否定和析取,然后就能用 De Morgan 律和各种分配律继续化简。好多证明题,思路就藏在把蕴含改成析取这一步里。
我拿一道证明题举例:要证明 P→Q ⇒ ¬Q→¬P,可以先利用逆否等值式,¬Q→¬P ⇔ Q∨¬P ⇔ ¬P∨Q ⇔ P→Q,推来推去发现两边本质上是同一个公式,所以蕴含自然成立。这种证明方式看着眼花,实际操作其实非常机械。
5.3 死记还是理解:我的建议
有的同学问:这些规则这么多,是不是只能硬背?我的体会是,像规则名字和符号可以靠反复默写记住,但更重要的是把每个规则翻译回人话。比如假言推理就是“条件成立推出结果成立”,拒取式就是“结果不成立反推条件不成立”,析取三段论就是“二选一排除一个选另一个”。每次做题前先在心里把规则翻译成中文,做完几道题后,你发现根本不用背了。
另外在书写证明题时,我强烈建议把每一步用到的规则名字写在右边。比如:
- P (前提)
- P→Q (前提)
- Q (1,2假言推理)
- Q→R (前提)
- R (3,4假言推理)
这种写法看似啰嗦,但既是帮自己检查逻辑漏洞,也是给阅卷老师看你的推导过程是否规范。很多考试是按步骤给分的,即使最终结论不对,规范的过程也能保住大部分分数。
6. 常见错误、考试陷阱与复习节奏
6.1 频繁翻车的三个错误
我把这几年见过的高频错误集中聊一下,每条都是同学们反复踩过的坑。
第一,把“或”理解成排斥或。日常口语里“你或者我”常常带点非此即彼的意思,但逻辑学里的析取是包含或,A∨B 允许 A、B 同时为真。考试中如果出现“或者……或者……”的题干,先默认是包含或,除非题干明确说“两者不能同时成立”。
第二,做蕴含式时用生活经验代入。比如有人总觉得“p假q真”时,p→q 应该是假的,理由是“条件都没发生怎么结论还成立了”。实际上前面讲过,这是善意推定。做题时放下生活经验,只按真值表走,就不会错。
第三,混淆 ⇒ 和 →。记住,⇒ 是元语言符号,表示“可推出”,→ 是公式内部的联结词。写证明题时如果用混,推导过程就不严密,容易被扣分。
6.2 考试怎么考:题型与出题思路
从历年题目看,第一章的考点基本集中在五个方向:判断一个句子是否为命题;把自然语言句子符号化;列出命题公式的真值表;判断某个蕴含式是否成立;用推理规则完成一道逻辑证明题。
判断题和符号化题是送分题,考察的是概念清楚与否。符号化时先找原子命题,再找联结词,切忌跳步。真值表和蕴含式题则拼手稳,平时多练几张表,速度和准确率都会上来。逻辑证明题是压轴题,重点考察你对假言推理、拒取式、析取三段论这些基本规则能不能熟练调用。
我见过一道很典型的证明题:给出前提 A→B,B→C,C→D,¬D,证明 ¬A。正确的思路是先用假言三段论把 A→B、B→C、C→D 串起来得到 A→D,再用拒取式从 A→D 和 ¬D 推出 ¬A。整个推完一共三行,但每一步都不能错。
6.3 一周复习规划
如果你还有一周时间,这章完全可以拿下。第一天过定义,把命题、原子命题、复合命题、联结词优先级全部默写一遍。第二天练真值表,找五道题,从两个变元到三个变元,列表写到熟练。第三天集中攻蕴含式,把常见蕴含式表格抄三遍,把每个式子都用人话翻译一遍。第四天练推理规则,做三到五道证明题,每一步标上规则名称。第五天刷错题,特别是之前真值表和蕴含式做错的题,找到错误的共同点。第六天找两套含第一章内容的真题,限时完成。第七天只看错题和公式表,轻装上阵。
这个节奏不需要太高强度,每天一到两小时就够,关键是每天都摸一摸公式,别让手生。
我自己考这门课之前,最喜欢干的事情就是合上笔记,在草稿纸上默写五大联结词的真值表和那七八条蕴含式,一遍不对就再来一遍。写上三天,后面无论遇到多长的公式,都会有一种看熟人脸的亲切感。这一章是这个课程的入口,也是唯一一个“多背多练就一定有分”的老实章节。只要把第一章啃下来,后面那些集合、关系、图论再抽象,你也能有一个牢固的起点。