离散数学——基本离散结构:集合,函数,序列,和式和矩阵
离散数学——基本离散结构:集合,函数,序列,和式和矩阵集合集合介绍本章,我们将学习所有离散结构的基础,集合。集合被用来组织对象。这些对象通常有相同的属性。我们先给出一些感性的定义。定义:一个集合是一个无序容器,叫做元素或对象的集合。一个集合被说成包含它的元素。我们写法 a∈Aa \in Aa∈A 指的是元素 aaa 在集合 AAA 中。我们用记号 a∉Aa \notin Aa∈/A 称作元素 a
离散数学——基本离散结构:集合,函数,序列,和式和矩阵
集合
集合介绍
本章,我们将学习所有离散结构的基础,集合。集合被用来组织对象。这些对象通常有相同的属性。我们先给出一些感性的定义。
定义:一个集合是一个无序容器,叫做元素或对象的集合。一个集合被说成包含它的元素。我们写法 a∈Aa \in Aa∈A 指的是元素 aaa 在集合 AAA 中。我们用记号 a∉Aa \notin Aa∈/A 称作元素 aaa 不在集合 AAA 中。
我们通常约定大写字母表示集合,小写字母表示元素。
表示集合有很多方法,经常使用的是 列举法 ,即将集合中的元素用花括号列出来,例如 A={a,b,c,d}A=\{ a,b,c,d \}A={a,b,c,d} 即集合 AAA 中含有四个元素,分别是 a,b,c,da,b,c,da,b,c,d 。
有时候元素的数量可能很多,但是元素有一定的模式,此时我们就能用 …\ldots… 来表示省略,例如 A={1,2,…,99,100}A = \{1,2,\ldots,99,100\}A={1,2,…,99,100} 来表示 111 到 100100100 的整数。
另外一种描述集合的方法称为 集合构造器 记号。我们描述集合元素的特征而不是列举元素。例如 O={x∈Z+∣x≤10}O = \{x \in Z^+|x \leq 10\}O={x∈Z+∣x≤10} 表示集合 OOO 中包含小于等于 101010 的正整数。
下面的这些集合是数学中经常使用的集合。通常用黑体或者空心花体表示。
| 名称 | 解释 |
|---|---|
| N\mathbb{N}N | 自然数集合(此书包含 000 ) |
| Z\mathbb{Z}Z | 整数集合 |
| Z+\mathbb{Z^+}Z+ | 正整数集合 |
| QQQ | 有理数集合 |
| Q+Q^+Q+ | 正有理数集合 |
| RRR | 实数集合 |
| R+R^+R+ | 正实数集合 |
| CCC | 复数集合 |
回想一下我们区间记号的写法:
[a,b]={x∣a≤x≤b}[a,b)={x∣a≤x<b}(a,b]={x∣a<x≤b}(a,b)={x∣a<x<b} \begin{aligned} \left [a,b \right ] & = \{x|a \leq x \leq b\} \\ [a,b) & = \{x|a \leq x \lt b\} \\ (a,b] & = \{x|a \lt x \leq b\} \\ (a,b) & = \{x|a \lt x \lt b\} \end{aligned} [a,b][a,b)(a,b](a,b)={x∣a≤x≤b}={x∣a≤x<b}={x∣a<x≤b}={x∣a<x<b}
第一个被称为 闭区间 ,最后一个称为 开区间 。
注意数据类型或者类型的概念,在计算机科学中是基于集合的概念。也就是说,一个 数据类型 是一个集合,具有相同的操作在集合中。例如布尔类型就是 ${0,1}$ 具有两个元素的集合,集合中的元素可以进行与或非等操作。
定义:如果两个集合是是相同的,当且仅当他们有相同的元素。因此,如果 AAA 和 BBB 是相同的,当且仅当 ∀x(x∈A ⟺ x∈B)\forall x (x \in A \iff x \in B)∀x(x∈A⟺x∈B) 。我们写成 A=BA = BA=B 。
有一个特殊的集合没有任何元素,被称为 空集 写作 ∅\emptyset∅ 。用列举法表示为 {}\{\}{} 。
另外一个特殊的集合是 单集 ,这个集合的元素有且只有一个。
一个常见的困惑是 ∅\emptyset∅ 和 {∅}\{ \emptyset \}{∅} 的区别,我们发现,前者指的是空集,没有任何元素,后者是一个单集,有一个元素为空集。这就类比于计算机中的文件目录结构。
韦恩图
一些集合能够形象化的表示为韦恩图。在韦恩图中 全集 是指包含一切元素的集合(取决于你的研究对象),记作 UUU ,在韦恩图中用一个矩形表示。在矩形中,其他的几何元素例如圆表示一个集合,用点来表示一个具体的元素,用重叠关系来表示集合关系。
子集
定义:集合 AAA 是集合 BBB 的子集如果集合 AAA 中所有的元素也在 BBB 中。我们使用记号 A⊆BA \subseteq BA⊆B 表示。
我们发现 A⊆BA \subseteq BA⊆B 等价于:
∀x(x∈A→x∈B) \forall x (x \in A \to x \in B) ∀x(x∈A→x∈B)
韦恩图表示为 BBB 包含 AAA 。
定理:对于任何集合 SSS , ∅⊆S\emptyset \subseteq S∅⊆S 并且 S⊆SS \subseteq SS⊆S 。
这说明一个非空集合必有两个子集,一个是空子集,一个是他本身,这两个集合称为平凡子集。
当我们想强调 AAA 是 BBB 的一个子集但是 A≠BA \neq BA=B ,此时我们用记号 A⊂BA \subset BA⊂B 说明 AAA 是 BBB 的一个 真子集 。等价于下面的命题:
∀x(x∈A→x∈B)∧∃x(x∈B∧x∉A) \forall x (x \in A \to x \in B) \wedge \exists x (x \in B \wedge x \notin A) ∀x(x∈A→x∈B)∧∃x(x∈B∧x∈/A)
如果我们想证明 A=BA = BA=B 我们可以证明 A⊆BA \subseteq BA⊆B 并且 B⊆AB \subseteq AB⊆A 。
集合的大小
定义:如果集合 SSS 有 nnn 个不同的元素,这里 nnn 是一个非负整数。我们说集合 SSS 是有限集合并且 nnn 是集合的势。集合的势被记作 ∣S∣|S|∣S∣ 。
另外,集合分为有限集合和无限集合。
定义:如果一个集合不是有限集合,那么他是无限集合。
幂集
许多集合问题都和它的子集有关,我们定义幂集这个概念。
定义:给定一个集合 SSS ,SSS 的幂集是他所有子集的集合,记作 P(x)\mathcal{P}(x)P(x) 。
如果一个集合 SSS 有 nnn 个元素,那么他的子集有 2n2^n2n 个,它幂集的势为 2n2^n2n 。
笛卡尔积
集合有的时候并不是我们想要的结构,因为他是无序的。有时候我们需要一个有序的结构,称为 nnn 元组 。
定义:有序 nnn 元组 (a1,a2,…,an)(a_1,a_2,\ldots,a_n)(a1,a2,…,an) 是一个有序集合, a1a_1a1 作为第一个元素,以此类推。
我们说两个 nnn 元组相等,当且仅当对应位置上的元素均相同。
特别的, 222 元组被称为 有序对 。
定义:让 AAA 和 BBB 是集合,两个集合的笛卡尔积 A×BA \times BA×B 是一个所有元素都是有序对的集合:
A×B={(a,b)∣a∈A∧b∈B}A \times B = \{(a,b)|a \in A \wedge b \in B\}A×B={(a,b)∣a∈A∧b∈B}
我们将定义推广至 nnn 个集合的笛卡尔积。
定义:多个集合的笛卡尔积 A1×A2×…×AnA_1 \times A_2 \times \ldots \times A_nA1×A2×…×An 是一个所有元素都是有序对的集合:
A1×A2×…×An={(a1,a2,…,an)∣a1∈A1∧a2∈A2∧…∧an∈An}A_1 \times A_2 \times \ldots \times A_n = \{(a_1,a_2,\ldots,a_n)|a_1 \in A_1 \wedge a_2 \in A_2 \wedge \ldots \wedge a_n \in A_n\}A1×A2×…×An={(a1,a2,…,an)∣a1∈A1∧a2∈A2∧…∧an∈An}
我们使用记号 A2A^2A2 表示运算 A×AA \times AA×A ,同理 AnA^nAn 即 nnn 次 AAA 的笛卡尔积。
一个 A×BA \times BA×B 的子集 RRR 被称为是从 AAA 到 BBB 的关系 。
使用集合记号和量词
有了集合,我们就可以引入集合限定域,例如 ∀x∈S(P(x))\forall x \in S (P(x))∀x∈S(P(x)) 就是 ∀x(x∈S→P(x))\forall x (x \in S \to P(x))∀x(x∈S→P(x)) 的简写。
对于特称量词也同理。
真值集合和量词
我们将集合和量词的关系连接起来。定义谓词 P(x)P(x)P(x) 的 真值集合 {x∈D∣P(x)}\{x \in D | P(x)\}{x∈D∣P(x)} 指的是所有在全域 DDD 上使得 P(x)P(x)P(x) 为真的所有元素构成的集合。
集合操作
集合操作介绍
对于两或多个集合,可以根据他们拥有元素的特征进行集合的运算。
定义:集合 AAA 和 BBB 的并集,记作 A∪BA \cup BA∪B ,是那些在 AAA 在 BBB 或者在两者中的所有元素构成的集合。
集合的并集等价于:
A∪B={x∣x∈A∨x∈B} A \cup B = \{x | x \in A \vee x \in B\} A∪B={x∣x∈A∨x∈B}
用韦恩图表示为两者所有的面积。
定义:集合 AAA 和 BBB 的交集,记作 A∩BA \cap BA∩B ,是那些既在 AAA 又在 BBB 中的所有元素构成的集合。
集合的并集等价于:
A∩B={x∣x∈A∧x∈B} A \cap B = \{x | x \in A \wedge x \in B\} A∩B={x∣x∈A∧x∈B}
用韦恩图表示为两者重叠部分的面积。
定义:两个集合是不交的,当且仅当两个集合的交集为空集。
我们有时对两个集合并集的集合的势的大小感兴趣,注意 ∣A∣+∣B∣|A| + |B|∣A∣+∣B∣ 将重叠部分的面积计算了两次,所有我们还有减去一次重叠面积,也就是:
∣A∪B∣=∣A∣+∣B∣−∣A∩B∣ |A \cup B| = |A| + |B| - |A \cap B| ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
上面的计算方法被称为 容斥原理 。
定义:两个集合的差集 A−BA - BA−B 是那些在 AAA 中 但不在 BBB 中所有元素构成的集合。也叫 AAA 的补相对于 BBB。
A−B={x∣xinA∧x∉B} A - B = \{x | x in A \wedge x \notin B\} A−B={x∣xinA∧x∈/B}
用韦恩图表示为用 AAA 的面积减去 BBB 的面积。
一旦全集 UUU 确定,那么我们即可以定义集合 SSS 的补集。
定义:集合 AAA 的补集,记作 Aˉ\bar{A}Aˉ 是 U−AU - AU−A 。
也就是说:
Aˉ={x∈U∣x∉A} \bar{A} = \{x \in U | x \notin A\} Aˉ={x∈U∣x∈/A}
关于补集有个重要的恒等式:
A−B=A∩Bˉ A - B = A \cap \bar{B} A−B=A∩Bˉ
集合恒等式
下面表展示了大部分的集合恒等式。
| 恒等式 | 名称 |
|---|---|
| A∩U=AA \cap U = AA∩U=A | 同一律 |
| A∪∅=AA \cup \emptyset = AA∪∅=A | 同一律 |
| A∪U=UA \cup U = UA∪U=U | 零律 |
| A∩∅=∅A \cap \emptyset = \emptysetA∩∅=∅ | 零律 |
| A∪A=AA \cup A = AA∪A=A | 幂等律 |
| A∩A=AA \cap A = AA∩A=A | 幂等律 |
| Aˉˉ=A\bar{\bar{A}} = AAˉˉ=A | 双重否定律 |
| A∪(B∪C)=(A∪B)∪CA \cup (B \cup C) = (A \cup B) \cup CA∪(B∪C)=(A∪B)∪C | 结合律 |
| A∩(B∩C)=(A∩B)∩CA \cap (B \cap C) = (A \cap B) \cap CA∩(B∩C)=(A∩B)∩C | 结合律 |
| A∪(B∩C)=(A∪B)∩(A∪C)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)A∪(B∩C)=(A∪B)∩(A∪C) | 分配律 |
| A∩(B∪C)=(A∩B)∪(A∩C)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)A∩(B∪C)=(A∩B)∪(A∩C) | 分配律 |
| A∩B‾=Aˉ∪Bˉ\overline{A \cap B} = \bar{A} \cup \bar{B}A∩B=Aˉ∪Bˉ | 德摩根律 |
| A∪B‾=Aˉ∩Bˉ\overline{A \cup B} = \bar{A} \cap \bar{B}A∪B=Aˉ∩Bˉ | 德摩根律 |
| A∪(A∩B)=AA \cup (A \cap B) = AA∪(A∩B)=A | 吸收律 |
| A∩(A∪B)=AA \cap (A \cup B) = AA∩(A∪B)=A | 吸收律 |
| A∪Aˉ=UA \cup \bar{A} = UA∪Aˉ=U | 互补律 |
| A∩Aˉ=∅A \cap \bar{A} = \emptysetA∩Aˉ=∅ | 互补律 |
一些恒等式除了使用命题证明外,还可以使用 关系表 证明,关系表是类似于真值表的一个表,用 000 表示元素不在集合中,用 111 表示在集合中。
广义并和交
定义:一些集合的并集定义为元素至少在一个集合中。
也就是说:
A1∪A2∪…∪An=⋃i=1nAi A_1 \cup A_2 \cup \ldots \cup A_n = \bigcup_{i=1}^n A_i A1∪A2∪…∪An=i=1⋃nAi
定义:一些集合的交集定义为元素在所有集合中。
也就是说:
A1∩A2∩…∩An=⋂i=1nAi A_1 \cap A_2 \cap \ldots \cap A_n = \bigcap_{i=1}^n A_i A1∩A2∩…∩An=i=1⋂nAi
集合在计算机中的表示
有很多方式可以在计算机中表示集合。假设全集是有限的,我们可以用一串二进制数来表示一个集合,例如第一位表示元素 a1a_1a1 在不在集合中。
此时集合的交并补,正好对应二进制运算的 AND 和 OR 和 NOT 。
函数
函数介绍
定义:让 AAA 和 BBB 是两个非空子集。一个函数 fff 是给一个确定的 BBB 中元素给每一个 AAA 中的元素。我们写作 f(a)=bf(a) = bf(a)=b 这说明我们将 bbb 对应给 aaa 元素。这样的函数写作 f:A→Bf: A \to Bf:A→B 。
注意,函数有时也叫 映射 或者是 变换 。
描述函数的方式有很多种,一般数学上描述函数给出函数的公式,例如 f(x)=x+1f(x) = x+1f(x)=x+1 ,函数也可看做是从 AAA 到 BBB 的关系的一种子集。如果存在 f(a)=bf(a) = bf(a)=b 那么一定存在 (a,b)(a,b)(a,b) 。
定义:如果函数 f:A→Bf:A \to Bf:A→B 那么我们称 AAA 是函数的域, BBB 是函数的陪域。如果 f(a)=bf(a) = bf(a)=b 我们称 bbb 是 aaa 的像,而 bbb 是原像。函数 fff 的像或是值域指的是所有 AAA 中元素的像的集合。同时,我们也说是 fff 是 AAA 到 BBB 的映射。
注意,两个函数相等当且仅当两个函数的域,陪域以及映射关系相同。当我们改变任意一个要素,我们得到是两个不同的函数。
一个函数称为 实值的 如果它的陪域是实数的集合,如果是 整值的 如果它的陪域是整数的集合,两个实值或是整值函数可以相加或者相乘。
定义:让 f1f_1f1 和 f2f_2f2 是两个 A→RA \to RA→R 的函数。此时 f1+f2f_1 + f_2f1+f2 和 f1f2f_1f_2f1f2 仍是 A→RA \to RA→R 的函数,分别为 (f1+f2)(x)=f1(x)+f2(x)(f_1 + f_2)(x) = f_1(x) + f_2(x)(f1+f2)(x)=f1(x)+f2(x) 和 (f1f2)(x)=f1(x)f2(x)(f_1f_2)(x) = f_1(x) f_2(x)(f1f2)(x)=f1(x)f2(x) 。
如果函数 f:A→Bf: A \to Bf:A→B 那么 AAA 子集的像也就能定义。
定义:如果 fff 是从 AAA 到 BBB 的函数,让 SSS 是集合 AAA 的子集。子集 SSS 在 fff 下的像是一个 BBB 的子集,包含每一 SSS 中元素的像,记作 f(S)f(S)f(S) ,所以:
f(S)={t∣∃s∈S(t=f(s))}f(S) = \{t | \exists s \in S (t = f(s))\}f(S)={t∣∃s∈S(t=f(s))} 。
有时简记为 {f(s)∣s∈S}\{f(s) | s \in S\}{f(s)∣s∈S} 。
注意,写法 f(S)f(S)f(S) 是具有歧义的,可能是集合的像,也可能是集合的映射,出现歧义时要具体说明。
一对一和满射函数
有时我们不会给两个不同域元素分配同样的值,这叫做 一对一函数 。
定义:如果函数是一对一函数或者是单射函数,当且仅当对于所有的 f(a)=f(b)f(a) = f(b)f(a)=f(b) 都有 a=ba = ba=b 。
我们给出单射函数的一些条件。
定义:一个域和陪域都是实数集合的函数 fff 是单调递增的,当且仅当对于所有x<yx \lt yx<y 都有 f(x)≤f(y)f(x) \leq f(y)f(x)≤f(y) ,是严格单调递增的如果 f(x)<f(y)f(x) \lt f(y)f(x)<f(y) 。单调递减也同理。
显然,一个严格单调递增函数或严格单调递减函数都是一个一对一函数。
有时,一个函数的陪域和值域相同,此时我们称这个函数是 满射函数 。
定义:如果一个函数是满射函数,当且仅当对于陪域中的任意一个元素 bbb 都能在域中找到元素 aaa 使得 f(a)=bf(a) = bf(a)=b 。
如果函数同时具有单射和满射的性质,我们称这个函数是一个 双射函数 。
定义:如果函数同时具有单射和满射的性质,我们称这个函数是一个双射函数,也称为是一一对应函数。
反函数和复合函数
考虑一个一一对应函数,这个函数是满射的因此所有陪域中的元素都能找到一个原像对应,又因为是单射函数,所以原像是唯一的,那么反过来的关系也一定是函数。
定义: fff 是一个一一对应函数,如果存在 f(a)=bf(a) = bf(a)=b 那它的反函数就存在 f−1(b)=af^{-1}(b) = af−1(b)=a 。
注意写法 f−1f^{-1}f−1 并不是指倒数。
有时也称反函数为 可逆 函数。
定义:函数 ggg 是 AAA 到 BBB 的函数,函数 fff 是 BBB 到 CCC 的函数,这两个函数的复合函数记作 (f∘g)(a)=f(g(a))(f \circ g)(a) = f(g(a))(f∘g)(a)=f(g(a)) 。
也就是说,复合函数相当于是作用两次的函数,此时 ggg 的值域必须是 fff 域的子集。
如果函数 fff 存在反函数,那么 (f−1∘f)(a)=ιA(a)=a(f^{-1} \circ f)(a) = \iota_A(a) = a(f−1∘f)(a)=ιA(a)=a 并且 (f∘f−1)(b)=ιB(b)=b(f \circ f^{-1})(b) = \iota_B(b) = b(f∘f−1)(b)=ιB(b)=b 。
函数的图
我们可以用 A×BA \times BA×B 的子集来描述任何从 AAA 到 BBB 的函数。
定义:让 fff 是从 AAA 到 BBB 的函数。函数 fff 的图是有序对集合 {(a,b)∣a∈A∧f(a)=b}\{(a,b) | a \in A \wedge f(a) = b\}{(a,b)∣a∈A∧f(a)=b} 。
一些重要的函数
定义:底函数 ⌊x⌋\lfloor x \rfloor⌊x⌋ 是不大于 xxx 的最大整数,顶函数 ⌈x⌉\lceil x \rceil⌈x⌉ 是不小于 xxx 的最小整数。
另外一个重要的函数是 阶乘函数 。
这些在具体数学中会具体讲解,因此不在赘述。
部分函数
定义:如果函数 fff 只在域 AAA 的子集下有定义,这个子集叫做定义域,此时函数被称为部分函数,如果定义域等于域,那么称为全函数。
部分函数的定义是为了更好的描述一些特殊函数的反函数,例如 x\sqrt{x}x 就是一个部分函数。因为在负整数部分没有定义。
序列和和式
序列和和式的介绍
序列是一些元素的有序列表,在一些离散问题上具有重要的作用,通常用于计数,而计数的基础是和式的计算,因此本章讲解序列和和式。
序列
序列是一些元素的有序列表,例如 1,3,5,7,91,3,5,7,91,3,5,7,9 是一个有限序列,而 1,3,9,…,3n1,3,9,\ldots,3^n1,3,9,…,3n 则是一个无限序列。
定义:一个序列是一个域为整数(通常是 {0,1,2,3,…}\{0,1,2,3,\ldots\}{0,1,2,3,…} 或者是 {1,2,3,…}\{1,2,3,\ldots\}{1,2,3,…} )的函数,我们记作 ana_nan 是 nnn 的像。我们将一系列的 ana_nan 叫做是序列。
我们用 {an}\{a_n\}{an} 这个序列来记作一个序列。
有限序列有时也称为是 串 ,串的长度是有限序列的长度,空串记为 λ\lambdaλ 。
递归关系
定义:用 ana_nan 的前项( {a1,a2,…,an−1}\{a_1,a_2,\ldots,a_{n-1}\}{a1,a2,…,an−1} )描述 ana_nan 的方式称为递归描述。一个序列称为解,如果这个序列满足这个递归描述。
初始条件 指的是能开始递归的极小前几项,也就是说,确定了初始条件,那么就唯一的确定了其一个解。
如果我们找到了一个具有初始条件的迭代公式,我们称这个公式是其递归描述的一个 封闭公式 。
进一步展开将在具体数学系列笔记中说明,此处不在赘述。
如果想查询一个序列,可以访问 OEIS (On-Line
Encyclopedia of Integer Sequences) 数据库。
和式
接下来,我们讨论序列的和式,我们引入 和式记号 ,假设我们有序列:
am,am+1,…,an a_m,a_{m+1},\ldots,a_n am,am+1,…,an
将这些序列元素相加,我们记为:
∑j=mnaj=am+am+1+…+an \sum_{j=m}^n a_j = a_m + a_{m+1} + \ldots + a_n j=m∑naj=am+am+1+…+an
这里, jjj 称为 和式索引 通常使用字母 i,j,ki,j,ki,j,k 来表示。 mmm 称为和式的 下限 nnn 称为和式的 上限 。
定理:如果 aaa 和 rrr 都是实数且 rrr 不等于 000 ,那么:
∑j=0narj=arn+1−ar−1\sum_{j=0}^n ar^j = \frac{ar^{n+1} - a}{r - 1}∑j=0narj=r−1arn+1−a 如果 r≠1r \neq 1r=1
∑j=0narj=(n+1)a\sum_{j=0}^n ar^j = (n+1)a∑j=0narj=(n+1)a 如果 r=1r = 1r=1
和式也是可以嵌套的,例如:
∑i=14∑j=13ij \sum_{i=1}^4 \sum_{j = 1}^3 ij i=1∑4j=1∑3ij
处理嵌套和式我们从内部到外部处理,遇见外部变量当做为常量。
对于集合和式:
∑s∈Sf(s) \sum_{s \in S} f(s) s∈S∑f(s)
的意思是对所有 f(s)f(s)f(s) 求和,其中 sss 是集合 SSS 中的所有元素。
无限和式也称为 级数 ,处理级数可能需要一些微积分的知识。
进一步展开将在具体数学系列笔记中说明,此处不在赘述。
下面给出常用的和式表:
| 和式 | 封闭形式 |
|---|---|
| ∑k=0nark(r≠0)\sum_{k=0}^n ar^k (r \neq 0)∑k=0nark(r=0) | arn+1−ar−1\frac{ar^{n+1} - a}{r - 1}r−1arn+1−a |
| ∑k=1nk\sum_{k=1}^n k∑k=1nk | n(n+1)2\frac{n(n+1)}{2}2n(n+1) |
| ∑k=1nk2\sum_{k=1}^n k^2∑k=1nk2 | n(n+1)(2n+1)6\frac{n(n+1)(2n+1)}{6}6n(n+1)(2n+1) |
| ∑k=1nk3\sum_{k=1}^n k^3∑k=1nk3 | n2(n+1)24\frac{n^2(n+1)^2}{4}4n2(n+1)2 |
| ∑k=0∞xk,abs(x)<1\sum_{k=0}^\infty x^k,abs(x) \lt 1∑k=0∞xk,abs(x)<1 | 11−x\frac{1}{1 - x}1−x1 |
| ∑k=1∞kxk−1,abs(x)<1\sum_{k=1}^\infty kx^{k-1},abs(x) \lt 1∑k=1∞kxk−1,abs(x)<1 | 1(1−x)2\frac{1}{(1 - x)^2}(1−x)21 |
集合的势
在上一章我们介绍了有限集合的势就是集合元素的个数,本章介绍无限集合的势,以及等势,比较两个无限集合势大小的方法。
定义:如果两个集合 AAA 和 BBB 是等势的,当且仅当存在一个从 AAA 到 BBB (或从 BBB 到 AAA )的双射函数。我们说这两个集合是等势的,记作 ∣A∣=∣B∣|A| = |B|∣A∣=∣B∣ 。
对于集合势的定义,我们并不是直接测量集合的大小,而是通过相对的方法比较两个集合的势的大小关系。同理,集合势的大小也存在大小关系。
定义:如果存在从 AAA 到 BBB 的单射函数,我们说 AAA 的势小于等于 BBB ,写作 ∣A∣≤∣B∣|A| \leq |B|∣A∣≤∣B∣ 。进一步,如果 AAA 和 BBB 不等势,那么我们说 AAA 的势小于 BBB ,写作 ∣A∣<∣B∣|A| \lt |B|∣A∣<∣B∣ 。
可数集合
我们将无限集合分成两类,一类和自然数集等势,另一类不等势。
定义:如果集合是有限的或者无限的但和正整数集合等势,那么这个集合叫做可数集合,否则叫做不可数集合。我们将可数集合的势记作 ℵ0\aleph_0ℵ0 (读作阿列夫零),同时记作 ∣A∣=ℵ0|A| = \aleph_0∣A∣=ℵ0 。
可数集合一个重要的特征是能够列举成序列的形式,因为序列的索引和正整数集是一一对应的。
根据可数集的定义,我们显然知道,整数集是可数集,但更重要的是,有理数集同样是可数集。
有理数可以写作是 p/qp/qp/q 的形式,那么我们让 ppp 作为列标,而 qqq 作为行标,这样就有了一个无限大的方格,我们以斜对角线的方式遍历这个无限大的方格,得到一个无限序列,因此有理数集同样是可数集。
不可数集
我们已经知道了可数集的定义和例子,对于不可数集的讨论,实数集就是经典是不可数集合。我们使用著名的 康托对角线证明 。
为了证明实数集是不可数集合,我们先假设实数集是可数集合,那么 [0,1][0,1][0,1] 内的实数集同样可数,因为可数集的子集一定是可数集。
现在让我们列举 [0,1][0,1][0,1] 内的实数。
r1=0.d11d12d13…r2=0.d21d22d23…r3=0.d31d32d33…⋮ \begin{aligned} r_1 & = 0.d_{11}d_{12}d_{13}\ldots \\ r_2 & = 0.d_{21}d_{22}d_{23}\ldots \\ r_3 & = 0.d_{31}d_{32}d_{33}\ldots \\ \vdots \\ \end{aligned} r1r2r3⋮=0.d11d12d13…=0.d21d22d23…=0.d31d32d33…
这里 dij={0,1,2,3,4,5,6,7,8,9}d_{ij} = \{0,1,2,3,4,5,6,7,8,9\}dij={0,1,2,3,4,5,6,7,8,9} ,根据上述列举的实数,我们能够构造出一个新的实数,即 r=0.d1d2d3…r = 0.d_1d_2d_3\ldotsr=0.d1d2d3…
di={4ifdii≠45ifdii=4 d_i = \begin{cases} 4 & \text{if} & d_{ii} \neq 4 \\ 5 & \text{if} & d_{ii} = 4 \end{cases} di={45ififdii=4dii=4
易知,在枚举的rir_iri 中没有一个是和 rrr 相同的,也就是说实数是无法枚举出来的,所以实数集不是可数集。
现在我们讨论一下关于可数集的一些定理。
定理:如果 AAA 和 BBB 是可数集,那么 A∪BA \cup BA∪B 也同样是可数集。
我们可以通过 a1,b1,a2,b2,…a_1,b_1,a_2,b_2,\ldotsa1,b1,a2,b2,… 进行交替枚举,因此可数集的并集也是可数集。
定理:(Cantor-Bernstein-Schroeder Theorem)是集合论基本定理。如果 ∣A∣≤∣B∣|A| \leq |B|∣A∣≤∣B∣ 并且 ∣B∣≤∣A∣|B| \leq |A|∣B∣≤∣A∣ 那么 ∣A∣=∣B∣|A| = |B|∣A∣=∣B∣ 。换句话说,如果同时存在从 AAA 到 BBB 和从 BBB 到 AAA 的单射函数,那么必定存在两个集合直接的双射函数。
尽管这个定理阐述的十分简单,但是证明起来却十分困难,读者可查阅相关资料。
现在我们讨论一下在计算机中的应用,那即是存在不可计算函数,指在任何计算机中都不能被计算的函数。
定义:我们说一个函数是 可计算的 ,当且仅当存在计算机和编程语言能够找到他的值,否则是 不可计算的 。
很显然,一定存在不可计算的函数,举例来说,一个计算[0,1][0,1][0,1]内所有实数的和是一个不可计算函数。
我们用一个更高级的理论结束本章。能够证明, Z+\mathbb{Z}^+Z+ 的幂集和 R\mathbb{R}R 等势,也就是说 ∣P(Z+)∣=∣R∣=c|\mathcal{P}(\mathbb{Z}^+)| = |\mathbb{R}| = \mathfrak{c}∣P(Z+)∣=∣R∣=c 其中 c\mathfrak{c}c 是实数集的势。
另外一个著名的结论,说明集合的势小于他幂集的势,因此 ∣Z+∣<∣P(Z+)∣|\mathbb{Z}^+| \lt |\mathcal{P}(\mathbb{Z}^+)|∣Z+∣<∣P(Z+)∣ ,我们可以写作 ℵ0<2ℵ0\aleph_0 \lt 2^{\aleph_0}ℵ0<2ℵ0 其中 2∣S∣2^{|S|}2∣S∣ 指的是集合 SSS 幂集的势。因此 2ℵ0=c2^{\aleph_0} = \mathfrak{c}2ℵ0=c 。
这引出著名的 连续性假设 ,这个假设断言不存在一个势数大于 ℵ0\aleph_0ℵ0 并小于 c\mathfrak{c}c 。能够证明,最小的无限势数形成一个无限的序列 ℵ0<ℵ1<ℵ2<…\aleph_0 \lt \aleph_1 \lt \aleph_2 \lt \ldotsℵ0<ℵ1<ℵ2<… ,如果这个假设是真的,那么 c=ℵ1=2ℵ0\mathfrak{c} = \aleph_1 = 2^{\aleph_0}c=ℵ1=2ℵ0 。
矩阵
矩阵介绍
矩阵用于表示离散数学中元素在集合中的关系,在一下几个小节中将介绍矩阵的几个模型,例如,矩阵的通讯网络和传输系统模型。
定义:一个矩阵是一个矩形的数的数组,一个有 mmm 行 nnn 列的矩阵称为 m×nm \times nm×n 矩阵。有相同的行数和列数的矩阵叫做方阵。两个矩阵相等,如果两个矩阵的行数和列数相同,并且对于位置上的元素也相同。
我们约定加粗的大写字母代表矩阵。
定义:矩阵的第 iii 行是一个 1×n1 \times n1×n 矩阵,矩阵的第 iii 列是一个 m×1m \times 1m×1 矩阵,我们将第 iii 行第 jjj 列的元素记为 aija_{ij}aij 。
矩阵算数
定义:矩阵的加法是对应位置上的元素相加,只有行数和列数相同的矩阵才能相加。
更重要的运算是矩阵的乘法。
定义:让 A\textbf{A}A 是一个 m×km \times km×k 矩阵,让 $B\textbf{B}B 是一个 k×nk \times nk×n 矩阵,两个矩阵相乘的结果 C=AB\textbf{C} = \textbf{A}\textbf{B}C=AB 是一个 m×nm \times nm×n 矩阵,记作 cij=∑p=1kaipbpjc_{ij} = \sum_{p = 1}^k a_{ip}b_{pj}cij=∑p=1kaipbpj 。
更详细的知识参考线性代数系列笔记。
矩阵的转置和幂
定义:单位矩阵是一个 n×nn \times nn×n 的方阵,其中主对角线上都是 111 其他位置都是 000 ,记作 In\textbf{I}_nIn 。
单位矩阵和任何矩阵相乘都等于矩阵本身。
定义: An\textbf{A}^nAn 表示矩阵和自身相乘 nnn 次。特别的 A0=In\textbf{A}^0 = \textbf{I}_nA0=In 。
最后一个是矩阵的转置。
定义: 矩阵 A\textbf{A}A 的转置记作 At\textbf{A}^tAt 并且 aijt=ajia^t_{ij} = a_{ji}aijt=aji 。
我们发现矩阵的转置的行数和列数正好和原矩阵相反。
特别的,一个矩阵是对称的,当且仅当它的转置和它本身相等。
零一矩阵
在离散数学中,矩阵重要的一个模型就是零一矩阵。即一个矩阵的元素要么是 000 要么是 111 。零一矩阵不同于一般的矩阵,因为他有布尔代数的性质,现在引出布尔代数算子。
b1∧b2={1b1=b2=10otherwise b_1 \wedge b_2 = \begin{cases} 1 & b_1 = b_2 = 1 \\ 0 & \text{otherwise} \end{cases} b1∧b2={10b1=b2=1otherwise
b1∨b2={1b1=1∨b2=10otherwise b_1 \vee b_2 = \begin{cases} 1 & b_1 = 1 \vee b_2 = 1 \\ 0 & \text{otherwise} \end{cases} b1∨b2={10b1=1∨b2=1otherwise
定义:两个矩阵的并记作 A∨B\textbf{A} \vee \textbf{B}A∨B 元素为对应元素进行 ∨\vee∨ 运算,两个矩阵的交写作 A∧B\textbf{A} \wedge \textbf{B}A∧B 元素为对应元素进行 ∧\wedge∧ 运算。
现在我们定义两个矩阵的 布尔积 。
定义:让 A\textbf{A}A 是一个 m×km \times km×k 矩阵,让 $B\textbf{B}B 是一个 k×nk \times nk×n 矩阵,两个矩阵布尔积的结果 C=A⊙B\textbf{C} = \textbf{A} \odot \textbf{B}C=A⊙B 是一个 m×nm \times nm×n 矩阵,记作 cij=(ai1∧b1j)∨(ai2∧b2j)∨…∨(aik∧bkj)c_{ij} = (a_{i1} \wedge b_{1j}) \vee (a_{i2} \wedge b_{2j}) \vee \ldots \vee (a_{ik} \wedge b_{kj})cij=(ai1∧b1j)∨(ai2∧b2j)∨…∨(aik∧bkj) 。
零一矩阵的布尔积就是矩阵相乘的离散模拟。用交代替称号,用并代替加号。
同样,我们定义幂运算。
定义: A[n]\textbf{A}^{[n]}A[n] 表示矩阵和自身做布尔积 nnn 次。特别的 A0=In\textbf{A}^0 = \textbf{I}_nA0=In 。
更多推荐


所有评论(0)