龙空技术网

谈谈集合运算

思考思考的动物 281

前言:

此时小伙伴们对“c语言集合运算”都比较着重,朋友们都需要学习一些“c语言集合运算”的相关文章。那么小编在网摘上汇集了一些对于“c语言集合运算””的相关知识,希望我们能喜欢,咱们快快来学习一下吧!

话题:#科学# #数学# #集合论# #抽象代数# #测度论#

小石头/编

集合可能是唯一没有精确定义的数学概念吧,虽然 它构成数学的基础!(反正,小石头从中学到现在,也没有看到一个精确的集合定义,如果大家有,请发表在评论中。)

提到 集合 大体可以认为是一些对象 杂乱无章(也就是 无序)的放在一起,这些对象称为集合的 元素概念来自哲学,其性质被称为 内涵,其涵盖的具体实例 的全体 被称为 外延,例如:

人,内涵 = 高级动物,外延 = 张三、李四、...

集合 也是一种概念,故 可以用 内涵 和 外延 两种方式定义,

内涵法:指定 集合元素 所满足的属性,基本形式是,E = {x | P(x) }例如:令 P(x) = x是高级动物,则 人 = {x | P(x)};外延法:将 集合元素 罗列出来,基本形式是,E = {a, b, c, ⋯}注:虽然罗列元素时,我们给元素排了一个顺序,但集合中元素是没有顺序的。例如:人 = {张三,李四, ... };

注:习惯上用,小写字母表示 非集合,用 大写字母表示 集合。

根据集合的定义,集合自身,自然附带一个元素与集合的关系判断:

如果 对象 x 是集合 E 的元素,我们 称 x 属于 E,记为 x ∈ E,反之 则 x 不属于 E,记为 x ∉ E := ¬(x ∈ E)。

※※※

为了描述清楚,本文会使用 一阶逻辑语言,它由以下三部分组成:

逻辑值:真 1,假 0;逻辑运算:一元 :非 ¬;二元: 与 ∧,或 ∨,蕴含 ⇒,等价 ⇔;任意元(包括 零元):恒真 ⊤ ,恒假 ⊥;量词:全称量词 ∀ ,存在量词 ∃;用 := 表示定义。

一阶逻辑语言和自然语言之间翻译对照为:

1 = 真,0 = 假;¬ x = 不是 x,非 x;x ∧ y = x 且 y;x ∨ y = x 或 y;x ⇒ y = 如果 x 那么 y,若 x 则 y;x ⇔ y = x 当且仅当 y,x 的从要条件是 y;⊤ = ⊤(x, ...) = 真,⊥ = ⊥(x, ...) = 假;∀ x ∈ E, y = 对于E中的任意 x 都有 y;∃ x ∈ E, y = E中存在 x 使得y;∃! x ∈ E, y = E中存在唯一 x 使得y;x := y = x 定义为 y。

关于 一阶逻辑语言 更详细的内容,可参考 小石头 首页 的文章《 一阶逻辑简介》或 相关的逻辑学书籍。

※※※

有了 ∈(∉) 后,我们就可以其为基础,就定义 集合关系 和 集合运算 了:

如果 集合 B 的 所有 元素 都属于 集合 A,则称 B 包含于 A 或 A 包含 B,记为,

B ⊆ A 或 A ⊇ B := ∀ x∈B ⇒ x∈A

同时,我们也 称 B 是 A 的子集, A 是 B 的 超集。集合 A 的所有子集,组成的集合称为 A 的 幂集,记为,

P(A) := {B | B ⊆ A } ❹

像幂集这种,元素是集合的 集合,称为 集族(或 集系集类)。

注:习惯上用,大写花体或粗体来表示 集族。

集合还是比较抽象的,不过我们可以借助 Venn图 来辅助理解(记得小石头小时候全靠它了),这里的包含可绘制如下图:

若 A 和 B 相互包含,则 A 和 B 相等,即,

A = B := A ⊆ B ∧ B ⊇ A ❶

交 和 并 可能是大家接触最早的 两种集合运算吧!(小石头是高一初见的,不知道大家是啥时候?)

两个集合 A 与 B 的 运算定义为:

A ∩ B := { x | x∈A ∧ x ∈ B }

其结果,是 两集合共同拥有的元素组成的集合,称为 交集。交 的 Venn图如下:

两个集合 A 与 B 的 运算定义为:

A ∪ B := { x | x∈A ∨ x ∈ B }

其结果,是 两个集合的元素和在一起组成的集合,称为 并集。并 的 Venn图如下:

又设 E 是集族,我们 还可 分别 升级 交 与 并 运算为:

E := {x | ∀ A ∈ E, x ∈ A }E := {x | ∃ A ∈ E, x ∈ A } ❸

并集,其实就是将 B 中的元素添加到了 A 中的结果,与之相反,从 A 中除去B中的元素 则 得到 差集,对应 的 运算定义为:

A \ B = { x | x∈A ∧ x ∉ B}

差 并不要求 A 一定包含 B,其 Venn图如下:

专门研究集合的数学叫集合论,集合论中要求集合必须满足:

一个对象是否属于一个集合 必须是明确的; ☆

可是实际上,前面集合的内涵定义,有时候并不满足这个要求,例如:

用内涵法定义集合

E = {x | x ∉ E}

判断 E 是否属于它自己?

如果 E ∈ E,则 它 就不符合 属性 x ∉ E,于是 E ∉ E,矛盾!如果 E ∉ E,则 它就 符合 属性 x ∉ E,于是 E ∈ E,矛盾!

无论怎样都会产下矛盾,也就是说,E 不满足 ☆,这就是 著名的 罗素悖论,其通俗版本就是,

理发师悖论:村里的理发师宣称:“我不给,给自己刮胡子的人,刮胡子”,于是有人问:“那你给自己刮胡子吗?”。

罗素悖论直接导致了第三次数学危机,为了应对危机,数学家想了一个方法 ①:

先指定一个满足☆的集合 X,然后在 X 范围内 使用 内涵法,基本形式是,E = {x∈ X | P(x) } ❷这样以来,定义结果 一定是 X 的子集,自然也就满足☆了。

一般来说,X 包含了 上下文 所需要研究 的所有对象,是最大的集合,被称为 全集

※※※

有了全集 X 后,我们就可以定义 运算了:

Aᶜ = X \ A

其中 Aᶜ 称为 A 的补集。 补 的Venn图如下:

与全集相对是 空集,它不包含任何元素,可定义为:

内涵法:∅ := {x| x≠x};外延法:∅ := { };

这两种定义等价。

最后,还有一种不常见的 对等差 运算,定义为:

A △ B = (A\B) ∪ (B\A)

它用来 表示两个 集合 A 和 B 差异 ,其 Venn图如下:

显然有,

A △ B = ∅ ⇔ A = B

方法 ① 仅仅是 数学家 的权宜之计,并不能从根本上解决问题,这对于 逻辑学家 是不能容忍的,于是他们另想了一个主意:

内涵法 不一定满足☆ 是事实,这意味着,内涵法的定义结果不一定是集合,于是 干脆 将其改称为 类 可以 是集合(满足☆) ,也可以 不是(不不满足☆)这时称为 真类从公理化思维角度看,内涵法 和 外延法 分别 是 集合 的唯二 的 两大 公理,现在:○ 外延法 没问题,保留!称为 ◎ 外延公理 :就是 前面的 ❶;○ 内涵法 有问题,于是 考虑 找寻 一组 公理 来替代它!逻辑学家总共找到8个:◎ 配对公理: 任意 a, b 都可组成 集合 {a,b},称为 无序对◎ 分离公理图式:就是前面的 ❷;◎ 并公理:就是前面的 ❸;◎ 幂集公理:就是前面的 ❹;◎ 无限公理:存在一个无限集;◎ 替换公理图式:若 F 是定义在 A 上的 函数,则存在 集合 F(A) := {F(x) | x ∈ A};◎ 正则公理:集合不能直接或间接的属于自己(防止罗素悖论);◎ 选择公理: 任何 非空集合组成的集族 上,都存在 选择函数,它自每一个元素集合中选择一个元素组成新的集合。

以上这 九个公理,这就是大名鼎鼎的 ZFC 公理。

至此, 第三次数学危机,基本上已经被解决了,但还留了一个尾巴:

在完备性上,再多的公理 也 不可能 完全 替代内涵法(详见 哥德尔不完备定理

不过也只能这样了。

其实我们最熟悉的运算是算术四则运算:加减乘除,其中减和除分别是加和乘的逆运算。在有理数域ℚ内考察,加(+)和乘(⋅)运算,我们发现它们具有如下性质:

运算

结合律

单位

可逆

交换律

分配律

+

(a+b)+c=a+(b+c)

0+a=a

a+(-a)=0

a+b=b+a

(a⋅b)⋅c=a⋅(b⋅c)

a⋅b=b⋅a

a⋅(b+c)=a⋅b+a⋅c

称具有这样性质的 (ℚ, +, ⋅) 为 ;与之比较,集合运算的对等差和交具有如下性质(设,X 是非空集合,在P(X)中考察):

运算

结合律

单位

可逆

交换律

分配律

(A△B)△C=A△(B△C)

∅△A=A

A△Aᶜ=∅

A△B=B△A

(A∩B)∩C=A∩(B∩C)

A∩B=B∩A

A∩(B△C)=(A∩B)△(A∩C)

故,(P(X), △, ∩) 也构成一个 环。 再进一步,若 非空集族 E 满足:

对 并封闭,即,A∈E, B ∈E ⇒ A∪B∈E对 差封闭,即,A∈E, B ∈E ⇒ A\B∈E

则有,

∅ = A \ A ∈ E

而,

A △ B = (A \ B) ∪ (B \ A) ∈E

A∩B =(A∪B) \ (A△B) ∈E

故, E 具有表二要求的运算,于是 E 是 环。

※※※

逻辑运算:或(∨)、与(∧)、非(¬),是我们接触的另外一类运算,发现它们具有如下性质(在 布尔值集 B={0, 1} 中考察):

运算

交换律

结合律

吸收律

分配律

单位

a∨b=b∨a

(A∨B)∨C=A∨(B∨C)

a∨(a∧b)=a

A∨(B∧C)=(A∨B)∨(A∨C)

0∨a=a

a∧¬a=1

a∧b=b∧a

(A∧B)∧C=A∧(B∧C)

a∧(a∨b)=a

A∧(B∨C)=(A∧B)∨(A∧C)

1∧a=a

a∧¬a=0

称具有这样性质的 (B, ∨, ∧, ¬) 为 布尔代数;将集合运算:交、并、补,与之比较有(依旧在 P(X)中考察):

运算

交换律

结合律

吸收律

分配律

单位

A∪B=B∪A

(A∪B)∪C=A∪(B∪C)

A∪(A∩B)=A

A∪(B∩C)=(A∪B)∩(A∪C)

∅∪A=A

A∪Aᶜ=X

A∩B=B∩A

(A∩B)∩C=A∩(B∩C)

A∩(A∪B)=A

A∩(B∪C)=(A∩B)∪(A∩C)

X∩A=A

A∩Aᶜ=∅

我们发现,(P(X), ∪, ∩, ᶜ) 构成一个 布尔代数。更进一步,对于任意非空集族 E ,如果满足:

对 并封闭;⑴对 补封闭,即,A∈E ⇒ Aᶜ∈E

则有,

X = A∪Aᶜ ∈ E

∅ = Xᶜ ∈ E

又根据德摩根定律有,

A∩B = ((A∩B)ᶜ)ᶜ = (Aᶜ∪Bᶜ)ᶜ ∈E

于是,E 就能满足表四的性质了,故 E 是 (布尔)代数

注:另外,从表四中,我们还能看出,(P(X), ∪, ∩) 距离 成环,只少一个 可逆 的性质,于是称 其为 半环。环E,要求 对 并 和 差 封闭,而 半环 要求,对 交封闭,并且 对于任意A, B ∈ E,B ⊆ A ,都存在 两两不相交 的 C₁, C₂, ..., Cᵣ ∈ E 使得,A\B = C₁∪C₂∪⋯∪Cᵣ 。

※※※

对于 任意 代数 E,因,

A \ B = A ∩ Bᶜ

E 是满足 X∈ E 的 环,称为 布尔环; 反过来 对于 布尔环 E,则有,

Aᶜ = X \ A;

E 是 代数。

※※※

以上的集合运算性质的详细证明省略(留给大家完成),这里仅通过Venn图简单的佐证一部分,

结合律:

分配律:

《高等数学》中极限,大家都听说过,其实用集合的运算,同样可以定极限:对于 集合序列 A₁, A₂, A₃, ...,

若 A₁ ⊆ A₂ ⊆ A₃ ⊆ ...,则称为单调递增的,并 定义极限:○ limn→∞ An = ∪ᵢ₌₁∞ Aᵢ = A₁∪A₂∪A₃∪⋯;若 A₁ ⊇ A₂ ⊇ A₃ ⊇ ...,则称为单调递减的,并 定义极限:○ limn→∞ An = ∩ᵢ₌₁∞ Aᵢ = A₁∩A₂∩A₃∩⋯;

对于任何序列 A₁, A₂, ...,我们总能构造,

单调递增序列: B₁ = A₁∩A₂∩A₃∩⋯ ⊆ B₂ = A₂∩A₃∩⋯ ⊆ B₂ = A₃∩⋯ ⊆ ⋯,于是定义下极限:○ lim inf n→∞ An = limn→∞ Bn;单调递减序列:B₁ = A₁∩A₂∩A₃∩⋯ ⊇ B₂ = A₂∩A₃∩⋯ ⊇ B₃ = A₃∩⋯ ⊇⋯,于是定义上极限:○ lim sup n→∞ An = limn→∞ Bn;

当上下极限相等时,则称 序列 的 极限存在,并记为:

limn→∞ An = lim inf n→∞ An = lim sup n→∞ An

※※※

考虑,代数 E,若将其条件⑴ 从对 并封闭,改为:

对 可列并封闭(也成 E 具有 σ 性),即,A₁, A₂, A₃, ... ∈ E ⇒ A₁∪A₂∪A₃∪⋯∈E

则有,

A₁∩A₂∩A₃∩⋯ = (( A₁∩A₂∩A₃∩⋯)ᶜ)ᶜ = (A₁∪A₂∪A₃∪⋯)ᶜ ∈E

于是,E 就支持了 上面 的 极限定义,此时称 Eσ 代数。类似地,具有 σ 性的环 σ 环,称为 σ 环(或 σ 代数) 是 可测空间 的基础。

(好了,乱七八糟地,就和大家聊这么多了。集合是从高中阶段开始接触的,比较抽象的概念之一,它对于数学至关重要,希望这篇文章对大家理解集合有所帮助。最后,小石头 在这里 祝大家 五一节 玩的高兴!)

标签: #c语言集合运算