这里是离散数学的学习笔记 qwq,也是我尝试使用 Markdown 记课上笔记的开始,离散数学是一门研究离散量的科学,是数据结构、算法设计的基础,这里不仅有有趣的逻辑与集合,还会有“超级好玩”的群论和图论等待你去探索。就让我们一起畅游这“魔法”的世界吧!

本笔记采用在课上简记,课后完善的模式,有可能因时间不够停更

本学科为 28 课时讲课 + 4 课时实验 (office 315)


1.数理逻辑

首先给出命题的概念:能表达判断且有确切的真值陈述句。命题的真值只有两种即 True 和 False,但悖论这种自相矛盾的陈述句不是命题,因为它不可能有确切的真值。

我们可以根据命题的描述复杂程度将命题分为原子命题和复合命题,原子命题是一种不可分解为更简单语句的陈述句,复合命题是由若干原子命题通过联结词构成的命题。

为了便于数学的符号化表示,我们需要对联结词进行明确规定并给出其符号表示,下面是一些基本的联结词:(按照优先级排序)

名称 符号 意义
否定 \(\lnot\) 取反
合取 \(\and\)
析取 \(\or\) 可兼或
条件 \(\rightarrow\) 若…则…
双条件 \(\leftrightarrow\) 当且仅当

对于条件句,我们总是遵循善意的推并,即当前件(前提)为假时,无论后件(结论)真值为何,我们总是认为条件句的真值为真。并且在条件句和双条件句中,我们并不要求它们的前件与后件有实际的联系。

有了以上的概念,我们就可以将现实生活中的一些可以被视为命题的陈述句翻译为我们的数学语言了,下文给出了翻译的大致方法:

  1. 找到原语句中包含的原子命题;

  2. 将原语句中的关联词翻译成适当的逻辑联结词;

  3. 将其用数学的符号写出。

值得注意的一点是,关联词 ”只有…才…“ 其实构成的是双条件句。

命题常量为表示确定命题的符号,命题变元为表示任意命题的符号,但其不是命题,原子变元为表示原子命题的命题变元,给命题变元指定值的操作叫做指派。

命题公式采用递归的定义,规定为:

  1. 单个命题变元本身为命题公式;
  2. 如果 \(P\) 为合法的命题公式,则 \(\lnot P\) 也为合法的命题公式;
  3. 如果 \(P, Q\) 为合法的命题公式,则 \((P \and Q), (P \or Q), (P \rightarrow Q), (P \leftrightarrow Q)\) 均为合法的命题公式。
  4. 当且仅当通过若干个命题变元和联结词通过法则 1. 2. 3. 进行有限次的拼接所形成的字符为命题变元。

对于一个命题公式中分量真值的各种指派所形成的各种组合所汇列成表,即为命题公式的真值表。

当给两个命题公式任意一组真值指派,它们的真值始终相等,则两个命题公式等价。我们如果想要证明两个问题中,两个命题公式是否等价,可以通过分别列出其真值表,而由 \(n\) 个命题变元所组成的命题有 \(2^n\) 种不同的真值指派,所以如果要依靠真值表证明,显然过于繁琐。我们可以通过一些法则来化简它们,这里选取了一些列在下面:

\[P \rightarrow Q \Leftrightarrow \lnot P \or Q \\ P \leftrightarrow Q \Leftrightarrow (P \rightarrow Q) \and (Q \rightarrow P) \\ P \and (P \or Q) \Leftrightarrow P \\ P \or (P \and Q) \Leftrightarrow P \\ \lnot (P \or Q) \Leftrightarrow (\lnot P \and \lnot Q) \\ \lnot (P \and Q) \Leftrightarrow (\lnot P \or \lnot Q) \]

子公式为一个命题公式的一部分,且这一部分本身是一个合法的命题公式。如果一个命题公式的子公式被其等价的命题公式置换,置换后得到的命题公式与原命题公式等价。