文章说明:本文内容来自博主本科阶段学习《离散数学》课程时所做的笔记。
公式说明:文中部分公式使用Markdown基础语法(上标、下标等)表示,部分公式使用Latex表示。由于文章所在的Markdown环境不支持引入宏包,部分公式不在文中展示。
格式说明:在下定义的句子中,用斜体 表示被下定义的概念,用高亮表示特别重要的概念。
版本历史:2026年2月2日发布第一版
目录
- 零、课程基本信息(来自教学大纲)
- [第一章 命题逻辑](#第一章 命题逻辑)
- [第二章 谓词逻辑](#第二章 谓词逻辑)
- [第三章 集合与关系](#第三章 集合与关系)
- [第四章 函数](#第四章 函数)
- [第七章 图论](#第七章 图论)
零、课程基本信息(来自教学大纲)
课程名称:离散数学/Discrete Mathematics
开课单位:浙江科技大学信息与电子工程学院
课程性质:必修课/学科基础
先修课程:线性代数
后修课程:数据结构、计算机组成、操作系统、数据库原理与应用 (相关文章👉作业自解答)
课程的性质、目的和任务:
- 本课程研究离散量的结构及其相互关系, 是现代数学的重要分支,在信息相关学科有广泛的应用。 特别地, 本课程是软件工程专业基础理论课程中的核心课程, 将为数据结构、 数据库原理与应用、 操作系统、 逻辑设计、系统结构等内容的学习提供必不可少的知识与训练。
- 本课程将使学生掌握经典逻辑对数学思维规律的研究成果并贯彻于今后的数学学习, 能够掌握集合论以及图论的基本知识, 并分析解决应用中抽象出的相关问题, 还将培养学生严谨和灵活的数学思维, 熏陶其创新意识, 为其学习有关的后续课程, 掌握专业知识及新的科学技术内容打下知识和思维的必要基础。
- 通过本课程教学, 学生应达到下列教学目标:
- 掌握命题逻辑的范式、 推理理论, 将学过的命题逻辑知识应用于日常生活和工程技术中。
- 掌握谓词逻辑的推理理论, 能用谓词演算的推理规则 解决一些实际中的逻辑问题。
- 掌握集合原理, 将学过的集合知识、 包含排斥原理应用于日常生活和工程技术中。
- 掌握关系原理, 及集合自反闭包、 对称闭包、 传递闭包运算。
- 掌握一笔画问题、 最小着色数、 最优树、 最优二叉树和 Huffman 算法。 二叉搜索树, 前缀码, 树的遍历。
本课程重点支持以下毕业要求指标点:
- 具备运用数学、 自然科学基础知识的能力。
- 拥有计算和抽象思维能力, 对软件系统及相关问题进行抽象和建模。
第一章 命题逻辑
- 命题:具有唯一真值的陈述句叫命题。
- 命题联结词
(4)单条件联结词:设P、Q为两个命题,P→Q读作:"若P则Q""P蕴含Q""P仅当Q""Q当且P"。 - 命题公式:永假式又称矛盾式。
- 常用等价式:(8)蕴含律 P→Q⇔ ¬P∨Q
- 永真蕴含式
证明步骤:(1)列出真值表(2)找出使单条件命题前件为"T"的所有真值指派,试看能否导致后件均为"T",若为"T",则蕴含成立。(3)找出使单条件命题的后件均为"F"的所有真值指派,试看前件的所有真值是否为"F",若是,则蕴含成立。 - 命题联结词总结
- 范式和判定
- 析取范式和合取范式
求解给定命题公式的析取范式或合取范式:(1)消去"→"和"↔"。(2)否定号的消去或内移。(3)使用分配律。 - 主析取范式:极小项的概念、角码。配凑:乘"1","1"展开,分配。
- 主合取范式:极大项的概念、角码。配凑:加"0","0"展开,分配。
- 析取范式和合取范式
- 推理理论
- 真值表技术
- 推理(论)规则
- 其依据是常用的永真蕴含式(用"I"表示)和等价公式(用"E"表示)
- P规则:在推导的任何步骤中都可以引入前提(条件)。
- T规则:由前件推出后件,使用时需写出根据。
- 条件证明规则CP:要证P⇒ (Q→R),只要证P∧Q⇒R。证明的第一步是引入Q为附加前提。
- 间接证明法(反证法、归谬法):证明的第一步是将后件取非作为假设前提,目的是推出矛盾的结论,使前件为F,从而证明。适用于后件较简单的情况。
第二章 谓词逻辑
- 谓词的概念与表示法:个体词 指可以独立存在的客体,而谓词是用来刻画客体词的性质或个体词之间关系的词。个体常项一般用
a,b,c表示,个体变项一般用x,y,z表示。个体变项的取值范围称为个体域。 - 命题函数与量词
- 谓词公式与翻译
- 变元的约束
- 辖域:紧接在量词后面括号内的谓词公式。
- 自由变元与约束变元
- 约束变元:在量词的辖域内、且与量词下标相同的变元。
- 自由变元:不受量词约束的变元。
- 个体域:对于同一个体域,用不同的量词时,特性谓词加入的方法不同。对于全称量词,其特性谓词以前件的方式加入;对于存在量词,其特性谓词以与的形式加入。
- 谓词演算的等价式与蕴含式
- 不含量词的谓词公式的永真式
- 含有量词的等价式和永真蕴含式
- 量词分配律:
- ∃x (A(x)→B(x))⇔∀xA(x)→∃xB(x)
- ∃xA(x)→∀xB(x)⇒∀x(A(x)→B(x))
- 量词分配律:
- 前束范式
- 谓词演算的推理理论
- 含有量词的特殊永真式
- 推论规则及使用说明
- 推论规则列表:(1)全称指定(US)规则。(2)全称推广(UG)规则。(3)存在指定(ES)规则。(4)存在推广(EG)规则。
- 命题逻辑中的P,T,CP规则和简接证明法,都可以引用到谓词逻辑的推论规则中来,不过要注意对量词做适当处理,其方法是:用US,ES在推导中去掉量词,用UG,EG使结论量化。推导中如果既用ES,又用US,若要取相同变元,则必须先用ES,后用US。
第三章 集合与关系
-
集合的概念和表示法
- 集合与元素
- 集合的表示方法
- (a)枚举法 (列举法):把集合的元素列于花括号内。
- 集合的表示方法
- 集合与元素
-
集合的运算
- 交集(交运算)
- 并集(并运算)
- 相对补集 :设A和B是二个任意集合,B对A的相对补集(A-B)是由A中不属于B的所有元素组成的集合。即
A-B={x│x∈A∧x∉B}。 - 绝对补集(补运算)
- 环和(对称差):设A、B是任意二集合,A和B的环和记作A⊕B。即A⊕B=(A-B)∪(B-A)=A∪B-A∩B。
-
序偶与笛卡尔乘积
- 序偶:由二个具有给定次序的客体所组成的序列称为序偶 ,记作
〈x,y〉。 - 笛卡尔乘积:设A,B为二个任意集合,x,y是两个任意元素,则 A和B的笛卡尔乘积 记作:
A×B={〈x,y〉| x∈A ∧ y∈B}。
- 序偶:由二个具有给定次序的客体所组成的序列称为序偶 ,记作
-
关系及其表示
-
关系:关系是事物之间(客体之间)的相互联系。
-
关系表示方法
-
枚举法、列举法
- x 与y 之间存在二元关系R ,记作xRy ,或<x ,y >∈R。
- 可以枚举出所有的序偶,用它们的集合来表示关系。
- xRy 的否定记作 x R̸ y x\not\mathrel{R}y xRy(此处为正斜杠,实际应为反斜杠,下同),或<x ,y >∉R。
-
谓词公式表示法
-
关系矩阵 表示法:设x∈X,y∈Y,R⊆X*Y,则对矩阵中的每个元素有
a i j = { 1 , ⟨ x i , y j ⟩ ∈ R 0 , ⟨ x i , y j ⟩ ∉ R a_{i j}=\left\{\begin{array}{l} 1,\left\langle x_{i}, y_{j}\right\rangle \in R \\ 0,\left\langle x_{i}, y_{j}\right\rangle \notin R \end{array}\right. aij={1,⟨xi,yj⟩∈R0,⟨xi,yj⟩∈/R -
关系图表示法
- 把X,Y集合中的全部元素以点的形式画在平面上;
- 若 x i R y i x_iRy_i xiRyi,则在xi和yi之间画一条弧线。
-
-
关系的定义域和值域:二元关系S的定义域为𝐷(𝑠)={𝑥|∃𝑦(<𝑥,𝑦>∈𝑆)},记作domS;值域为𝑅(𝑆)={𝑦|∃𝑥(<𝑥,𝑦>∈𝑆)},记作ranS。
-
关系和笛卡尔乘积:两个集合的笛卡尔乘积的任何一个子集都可以定义为一种二元关系。
-
三个特殊关系:空白关系、全域关系、恒等关系
- 在
X*X的子集中,将空集定义的关系称为空(白)关系,该关系中没有实例。X上的空关系是反自反、对称、反对称的。
- 在
-
-
关系的性质
- 自反性与反自反性
- 自反关系定义:设R是X集合中的二元关系,如果对于任意一个x ∈X ,均有xRx ,则称R是自反关系,或称X 中R是自反的,用谓词公式表示为∀𝑥(𝑥∈𝑋→𝑥𝑅𝑥)。
- 反自反关系定义:设R是X集合中的二元关系,如果对于任意一个x ∈X ,均有 x R̸ x x\not\mathrel{R}x xRx,则称R是反自反关系,或称X 中R 是反自反的,用谓词公式表示为∀𝑥(𝑥∈𝑋→ x R̸ x x\not\mathrel{R}x xRx)。
- 对称性
- 对称关系定义:设R 是X 中的二元关系,对于每一个x ,y ∈X ,若有xRy ,则必有yRx ,则称R 是X 中的对称关系,用谓词公式表示为∀𝑥∀𝑦(𝑥∈𝑋∧𝑦∈𝑋∧𝑥𝑅𝑦→𝑦𝑅𝑥)。
- 反对称关系定义:设R是X集合中的二元关系,对于每一个𝑥,𝑦∈𝑋,如果每当xRy和yRx就必有x=y,则称R是反对称的关系。
- 传递性
- 定义:设R 是X 中的二元关系,对于每一个𝑥,𝑦,𝑧∈𝑋,若有𝑥𝑅𝑦∧𝑦𝑅𝑧,则必有𝑥𝑅𝑧,则称R是可传递的,用谓词公式表示为:X中R可传递⇔∀𝑥∀𝑦∀𝑧(𝑥∈𝑋∧𝑦∈𝑋∧𝑧∈𝑋∧𝑥𝑅𝑦∧𝑦𝑅𝑧→𝑥𝑅𝑧)。
- 自反性与反自反性
-
复合关系和逆关系
- 关系的复合
- 复合关系的定义:设𝑋→𝑌为关系R ,𝑌→𝑍为关系S ,则称𝑋→𝑍为R与S的复合关系,记作R◦S ={<𝑥,𝑧>|𝑥∈𝑋∧𝑧∈𝑍∧∃𝑦(𝑦∈𝑌∧<𝑥,𝑦>∈𝑅∧<𝑦,𝑧>∈𝑆)}。
- 关系幂次的定义:给定集合X,R是X中的二元关系,设𝑛∈𝑁,则R0=X集合中的恒等关系 , R n + 1 = R n ∘ R R^{n+1}=R^n\circ R Rn+1=Rn∘R 。
- 关系的复合
-
关系的闭包运算
给定集合X,R是X中的二元关系,若有二元关系R'满足下列条件:
- R'是自反的(对称,可传递的);
- R'⊇R;
- 对于任一自反(对称,传递的)关系
R'',若R''⊇R,则R''⊇R'。
则称R'是R的自反(对称,传递的)闭包,依次记作
r(R),s(R),t(R)。讨论定义:
- 已知一个集合中的二元关系R,则
r(R),s(R),t(R)是唯一的,它是包含R的最小的自反(对称,传递)关系; - 若R是自反(对称,传递)的,则
r(R),s(R),t(R)就是R本身; - 若R不是自反(对称,传递)的,则我们可以补上最少序偶,使之变为自反、对称、传递关系,从而得到
r(R),s(R),t(R)。
定理:设|X|=n,R是X中的二元关系,则 t ( R ) = R ∪ R 2 ∪ ⋯ ∪ R k ( 0 ≤ K ≤ n ) t(R)=R\cup R^2\cup\cdots\cup R^k(0\le K\le n) t(R)=R∪R2∪⋯∪Rk(0≤K≤n)。
-
集合的划分和覆盖
- 集合的覆盖定义:设S为一非空集合,集合 A = { A 1 , A 2 ⋯ A m } A=\{{A_1,A_2\cdots A_m}\} A={A1,A2⋯Am},若有 ① A i ⊆ S ( i = 1 , 2 ⋯ , m ) ② ⋃ i = 1 m A i = S ①A_i\subseteq S(i=1,2\cdots,m)\ ②\bigcup_{i=1}^{m}{A_i=S} ①Ai⊆S(i=1,2⋯,m) ②⋃i=1mAi=S,则称A为S的覆盖。
- 集合的划分定义:设S为一非空集合,非空集合 A = { A 1 , A 2 ⋯ A m } A=\{{A_1,A_2\cdots A_m}\} A={A1,A2⋯Am},若有 ① A i ⊆ S ( i = 1 , 2 ⋯ , m ) ② A i ∩ A j = Φ 或 A i = A j ( i , j = 1 , 2 ... , m ) ③ ⋃ i = 1 m A i = S ①A_i\subseteq S(i=1,2\cdots,m)\ ②A_i\cap A_j=\mathrm{\Phi}或A_i=A_j(i,j=1,2...,m)\ ③\bigcup_{i=1}^{m}{A_i=S} ①Ai⊆S(i=1,2⋯,m) ②Ai∩Aj=Φ或Ai=Aj(i,j=1,2...,m) ③⋃i=1mAi=S,则称A为S的一个划分。
-
等价关系与等价类
- 设X是一个集合,R是X中的二元关系,若R是自反的、对称的、可传递的,则称R是等价关系。
- 设R是X集合中的等价关系,对于任何𝑥∈𝑋,规定:由𝑥生成的R等价类为 [ x ] R = { y ∣ y ∈ X ∧ y R x } \left[x\right]_R=\{{y|y\in X\land yRx}\} [x]R={y∣y∈X∧yRx}。易得[x]R中的元素是在等价关系R中、所有与x具有关系的元素所组成的集合,且 [ x ] R ⊆ X , U x ∈ X [ x ] R = X \left[x\right]R\subseteq X, U{x∈X}[x]_R=X [x]R⊆X,Ux∈X[x]R=X。
- 商集的定义:设X是一非空集合,R是X中的等价关系,若R的等价类的集合{[x]R| x∈X}是X的一个划分,则称此集合称为X按R的商集。
-
相容关系
-
序关系
- 偏序关系
定义:设R是P中的二元关系,如果R是自反的、反对称的、可传递的,则称R是P中的偏序关系 (或称偏序),并用符号"≤"表示,而序偶〈P,≤〉则称为偏序集合。 - 偏序集合和哈斯图
- 偏序集合定义:在偏序集合〈P,≤〉中,若有𝑥,𝑦∈𝑃,x≤y,𝑥≠𝑦,又不存在其它元素z,使得𝑥≤𝑧∧𝑧≤𝑦,则称元素y盖住 x,盖住集记为
COV(P)= {<𝑥,𝑦>|𝑥,𝑦∈𝑃 ; y盖住x}。 - 哈斯图定义:对于给定的偏序集〈P,≤〉,它的盖住集是唯一的,其关系图称为〈P,≤〉的哈斯图。
- 〈P,≤〉的哈斯图的绘制方法:将P中所有元素用点表示,若y盖住x,则把x画在y的下面,并在x与y之间画一根线。哈斯图中,所有线的方向都是向上的,所以可以省略方向箭头。
- 偏序集合定义:在偏序集合〈P,≤〉中,若有𝑥,𝑦∈𝑃,x≤y,𝑥≠𝑦,又不存在其它元素z,使得𝑥≤𝑧∧𝑧≤𝑦,则称元素y盖住 x,盖住集记为
- 最小元(素)、最大元(素)、极小元(素)、极大元(素)定义:设<P, ≤>为一偏序集,且Q ⊆ \subseteq ⊆P。
- 若存在q∈Q,对每一个q'∈Q有q≤q',则称q为Q的最小元素。
- 若存在q∈Q,对每一个q'∈Q有q'≤q,则称q为Q的最大元素。
- 若存在q∈Q,且不存在q'∈Q,使q'≠q且q'≤ q,则称q为Q的极小元素。
- 若存在q∈Q,且不存在q'∈Q,使q'≠q且q≤q',则称q为Q的极大元素。
- 上界、下界定义:设<P, ≤>为一偏序集,且Q ⊆ \subseteq ⊆P。
- 若存在q∈P,对每个q'∈Q有q'≤q,则称q为Q的上界。其中最小的一个,称为Q的最小上界,记为LUB(上确界)。
- 若存在q∈P,对每个q'∈Q有q≤q',则称q∈P为Q的下界,其中最大的一个,称为Q的最大下界,记为GLB(下确界)。
- 偏序关系
第四章 函数
- 函数的概念
- 函数的定义:设X和Y是任意两个集合,f是从X→Y的一种关系,若对于每一个x∈X,都存在一个唯一的 y∈Y,能使 <x,y>∈f ,则称关系f为函数(映射),并记为
f:X→Y。 - 函数的构成
- 几种特殊函数
- 【满射函数】给定函数
f: X→Y,如果值域Rf=Y,则称f为满射函数。 - 【入射函数】给定函数
f: X→Y,如果有 x 1 ≠ x 2 ⇒ f ( x 1 ) ≠ f ( x 2 ) 或 f ( x 1 ) = f ( x 2 ) ⇒ x 1 = x 2 x_1\neq x_2\Rightarrow f(x_1)\neq f(x_2)\ 或\ f(x_1)=f(x_2)\Rightarrow x_1=x_2 x1=x2⇒f(x1)=f(x2) 或 f(x1)=f(x2)⇒x1=x2,则称f是入射函数。 - 【双射函数】给定函数
f: X→Y,如果f既是满射函数,又是入射函数,则称f为双射函数。(或称"一一对应函数","一对一满射函数")
- 【满射函数】给定函数
- 函数的定义:设X和Y是任意两个集合,f是从X→Y的一种关系,若对于每一个x∈X,都存在一个唯一的 y∈Y,能使 <x,y>∈f ,则称关系f为函数(映射),并记为
第七章 图论
-
图的基本概念
- 基本名词和定义
- 图的专有名词定义
- 完全图:E=V×V。
- 多重边:含有多重边的图称为多重图 ,非多重图称为线图 。无自回路的线图称为简单图。
- 度数:在有向图中,结点的v的引入度数和引出度数之和称为v的度数 。无向图的结点的度数=与该结点关联的边的条数。
- 握手定理:在一个图中,结点度数的总和等于边数的两倍。
- 正则图:所有结点均具有同样度数的简单无向图。
- 图的专有名词定义
- 基本名词和定义
-
路与回路
-
路径和循环
-
穿程全部结点的路径:经过图中所有结点的路径。
-
简单路径:在有向图中经过边一次且仅一次的路径。
-
基本路径:在有向图中,穿程结点均不相同的路径。
-
循环:起始且终结于同一结点的路径。
-
简单循环:每一条边出现一次且仅一次的循环。
-
基本循环:通过每个结点一次且仅一次的循环。
从vi到vj的最短路径的长度称为距离,并记作d<vi,vj>。
-
-
可达性
-
连通性
- 对于无向图中的任何结点偶对来讲,若任何二个结点是相互可达的,则称此图是连通的 。 对于有向图而言,对于简单有向图的伴随无向图(或称底图),若是连通的,则称此图为弱连通的 ;若图中任何结点偶对中至少有一点到另一结点是可达的,则称此图是单侧连通的 ;如果两结点均是互相可达的,则称是强连通的。
- 定理:一个有向图是强连通的充要条件是:它包含一个循环,该循环至少包含每个结点一次。
-
-
图的矩阵表示
- 矩阵的计算
- A × A T A\times A^T A×AT的主对角线上的数表示结点i的引出次数。
- A T × A A^T\times A AT×A的主对角线上的数表示结点i的引入次数。
- A2表示 i 和 j 之间具有长度为2的路径数,A3表示 i 和 j 之间具有长度为3的路径数,A4表示i和j之间具有长度为4的路径数。规定 B 4 = A 1 + A 2 + A 3 + A 4 B_4=A^1+A^2+A^3+A^4 B4=A1+A2+A3+A4,则bij表示从结点vi到vj有长度分别为1,2,3,4的不同路径总数。
- 矩阵的计算
-
欧拉图和汉密尔顿图
- 欧拉路径:穿程图G的每一条边一次且仅一次的路径。
- 定理:无向图G具有一条欧拉路径,当且仅当G是连通的,且有0个或2个奇数度数的结点。
-
平面图
设
G=<V,E>是一个无向图,如果能够把G的所有结点和边画在平面上,且使得任何两条边除了端点外没有其它的交点,就称G是一个平面图 。设G是一个平面图,G的边将整个平面划分成若干个区域,每个区域称为G的一个面 。包围面R的所有边构成的回路称为该面的边界 ,边界的长度称为面R的次数 ,记为deg(R)。【定理】欧拉公式:设图G是一个(n,m)连通平面图,它的区域数为r,则有
n-m+r=2。 -
树与生成树
- 无向树(树)
- 连通的且无循环的无向图称为无向树。
- 定理:在一棵(n,e)树中有
e=n-1。(n表示结点数,e表示边数,等价命题)
- 生成树:最小生成树的Kruskal算法。
- 无向树(树)
-
有向树与根树
- 一棵有向树,如果恰有一个结点的入度为0,其余所有结点的入度都为1,则称为根树。
- 求最优二叉树的Huffman算法。
- 最佳前缀码:设B是一个符号串集合,若集合中任意2个不同的符号串都互不为前缀,则称B为前缀码 。只有2个符号(如0,1)的前缀码称为二元前缀码。