跳到正文
格致开物
MATHWIKI
探索
学科导航
学习路径
搜索
☾
登录
探索
学科导航
学习路径
随机漫游
希腊字母
关于本站
管理员登录
搜索
数学百科
/
知识地图
查看“︁集合”︁的源代码
←
集合
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
管理员
、aipublisher
您可以查看和复制此页面的源代码。
'''集合'''(set)是把一些确定的对象放在一起所形成的数学对象,其中的对象叫作元素。两个集合只要元素完全相同,就是同一个集合;元素的排列顺序和重复书写的次数不影响集合。 例如,方程 <math>x^2=1</math> 的实数解有两个,可以把它们合写成解集 <math>\{-1,1\}</math>。花括号表示“把这些对象作为一个整体”。集合语言使我们既能讨论某一个解,也能讨论所有解之间的关系。 == 怎样说明一个集合 == 设一枚骰子的六种点数构成集合 <math display="block">U=\{1,2,3,4,5,6\}.</math> 如果只取偶数点数,就得到 <math>A=\{2,4,6\}</math>。记号 <math>2\in A</math> 读作“2 属于 A”,而 <math>3\notin A</math> 表示 3 不是 A 的元素。 除了逐个列举,还可以用条件描述同一个集合: <math display="block">A=\{n\in U:n\text{ 是偶数}\}.</math> 冒号前说明从哪里取对象,冒号后说明筛选条件。这样写特别适合不能逐项列完的集合。例如 <math>\{n\in\mathbb Z:n>0\}</math> 是全体正整数,其中 <math>\mathbb Z</math> 表示整数集合。 范围会影响结果。方程 <math>x^2=1</math> 在实数中的解集是 <math>\{-1,1\}</math>,限制在非负实数中则只有 <math>\{1\}</math>。“很大的数”还没有确定的范围和标准,而“超过一百万的整数”已经能逐一判断某个对象是否属于其中。定义一个集合并不要求能迅速找到它的每个元素,但成员条件应当明确。 集合也不保留次数。例如 <math>\{1,2,2\}=\{1,2\}</math>。如果一组测量记录为 1、2、2,改写成集合后就丢失了一次重复测量;计算平均值时仍须使用原记录。需要保留顺序的对象可以用序列表示,需要保留次数的对象可以用多重集表示。 == “属于”和“包含”问的是两件事 == 继续看骰子集合。<math>A=\{2,4,6\}</math> 中的每个元素都在 <math>U</math> 中,因而称 A 是 U 的'''子集''',记为 <math>A\subseteq U</math>。这个符号问的是一整组对象是否全部被包含,而 <math>2\in A</math> 问的是一个对象是否属于其中。 集合本身也可以充当元素。取 <math display="block">C=\{1,\{2\}\}.</math> C 的两个元素分别是数字 1 和集合 <math>\{2\}</math>。因此 <math>\{2\}\in C</math>,但 <math>2\notin C</math>。另一方面,<math>\{1\}\subseteq C</math>,因为它唯一的元素 1 在 C 中;<math>\{2\}\not\subseteq C</math>,因为它唯一的元素 2 不在 C 中。辨别这两种关系时,要先看清正在检查的是哪个对象。 没有任何元素的集合称为'''空集''',记作 <math>\varnothing</math>。它与 <math>\{\varnothing\}</math> 不同:前者没有元素,后者有一个元素,这个元素本身是空集。空集是任何集合的子集,因为不存在“属于空集却不属于另一个集合”的元素。 证明两个集合相等,常用'''双向包含''':先证明 A 的每个元素都在 B 中,再证明 B 的每个元素都在 A 中。这样双方都没有多余的元素,便有 <math>A=B</math>。这里的 <math>\subseteq</math> 允许相等;若 A 是 B 的子集而又不等于 B,记为 <math>A\subsetneq B</math>,称为真子集。 == 把两个筛选条件合起来 == 除偶数点数 <math>A=\{2,4,6\}</math> 外,再设 <math>B=\{1,2,3\}</math>,表示不超过 3 的点数。现在有几种不同的筛选要求。 “是偶数,或者不超过 3”得到'''并集''' <math>A\cup B</math>;这里“或者”允许两个条件同时成立。“是偶数,并且不超过 3”得到'''交集''' <math>A\cap B</math>。逐项筛选,得到 <math display="block">A\cup B=\{1,2,3,4,6\},\qquad A\cap B=\{2\}.</math> 下图将两种筛选并排画出。左图着色整个 A 与 B,只要在任一圈内便被保留;右图只着色两圈重叠处,保留下来的元素只有 2。 [[File:Gezhi-teaching-foundation-sets-operations.svg|frame|center|alt=骰子点数集合的并集与交集,左图两圈整体着色包含一二三四六,右图只着色重叠处的二|并集取两圈覆盖的全部区域,交集只取共同区域。]] 点数 2 同时符合两个条件,但在并集中只出现一次。记 <math>|A|</math> 为有限集合 A 的元素个数,就有 <math display="block">|A\cup B|=|A|+|B|-|A\cap B|=3+3-1=5.</math> 减去交集,是因为先前相加时把其中的元素计算了两遍。这是[[组合数学]]中容斥计数的起点。 “是偶数,但超过 3”得到'''差集''' <math>A\setminus B=\{4,6\}</math>;反过来,<math>B\setminus A=\{1,3\}</math>。差集有方向,交换两集合会改变答案。 在已经指定的全集 U 内,所有不属于 A 的元素组成 A 的'''补集''': <math display="block">A^c=U\setminus A=\{1,3,5\}.</math> 这里的“不属于”仅在骰子的六种点数中检查。如果全集扩成从 1 到 10 的整数,同时保持 A 仍为 <math>\{2,4,6\}</math>,补集中就还包括 7、8、9、10。 === 区间运算怎样处理端点 === 集合的元素也可以遍布一段连续范围。令 <math>A=[-1,2)</math>、<math>B=(0,3]</math>,方括号表示包括端点,圆括号表示不包括。 同时属于两个区间,需要 <math>x>0</math> 且 <math>x<2</math>,所以交集是 <math>(0,2)</math>。至少属于一个区间,就覆盖了从 −1 到 3 的所有点,故并集为 <math>[-1,3]</math>。 再求差集。A 中的 0 不属于 B,应当保留;A 中任何大于 0 的点都属于 B,应当删去,因此 <math>A\setminus B=[-1,0]</math>。同理,2 属于 B 却不属于 A,所以 <math>B\setminus A=[2,3]</math>。逐个检查边界点,便能决定最后使用圆括号还是方括号。 == 集合等式为什么成立 == 求“并集的补集”,就是找两个条件都不符合的对象。仍用骰子例子,<math>A\cup B</math> 只缺少 5;而既不是偶数、又不小于等于 3 的点数也只有 5。这提示了德摩根律 <math display="block">(A\cup B)^c=A^c\cap B^c.</math> 下图把两种描述放在同一个全集中:左边先合并两个圈,再取圈外;右边要求同时在 A 外和 B 外。两边着色区域相同,本例都只包含点数 5。 [[File:Gezhi-teaching-foundation-sets-demorgan.svg|frame|center|alt=左右两个相同的全集与相交圆,均着色两圈以外区域,展示并集的补等于两个补集的交|德摩根律把“并集之外”改写成“两个集合都不属于”。]] 一般证明可以从任意一个全集中的元素 x 出发。它属于左边,当且仅当它不属于 <math>A\cup B</math>;这又等价于 <math>x\notin A</math> 且 <math>x\notin B</math>,正是属于右边的条件。左右两边的成员条件完全相同,集合便相等。 另一条德摩根律为 <math display="block">(A\cap B)^c=A^c\cup B^c.</math> “不同时满足两个条件”,意味着至少一个条件失败。例如骰子点数 4 不是“既偶数又不超过 3”的点数,尽管它满足偶数这个条件。这说明右侧要用并集。 用同样的方法,可以证明分配律: <math display="block">A\cap(B\cup C)=(A\cap B)\cup(A\cap C).</math> 左侧要求先属于 A,再在 B、C 中至少属于一个。按后一个条件分成两种情况,正好得到右侧的两部分。 差集的分配形式则需要重新检查。例如 <math>A\setminus(B\cup C)</math> 应当是 <math>(A\setminus B)\cap(A\setminus C)</math>。若误用并集,取 <math>A=B=\{1\}</math>、<math>C=\varnothing</math>,左侧为空,误写的右侧却含有 1。一个具体元素已足以判定两集合不等。 === 用元素检查区域 === 下面固定全集 <math>U=\{1,2,3,4,5,6\}</math>,<math>A=\{2,4,6\}</math>,<math>B=\{4,5,6\}</math>。选择一种运算后,先逐个判断哪些数满足条件,再与着色区域核对。特别比较“并集的补集”和“两个补集的交集”:两种描述都留下 1 与 3。这个有限例子帮助读图,前面的逐元素论证才说明等式对任意集合成立。 <math-experiment type="sets" /> == 用集合建立配对和选择 == 有时一个对象由两个部分组成,例如一次选择由“尺码”和“颜色”共同决定。这需要有序对:第一项与第二项各有位置,<math>(1,2)</math> 与 <math>(2,1)</math> 因而不同。 设 <math>A=\{0,1\}</math>、<math>B=\{a,b,c\}</math>。全部可能的有序对组成'''笛卡尔积''' <math display="block">A\times B=\{(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)\}.</math> 每个第一项都配上三个第二项,共有 <math>2\cdot3=6</math> 对。一般有限集合满足 <math>|A\times B|=|A||B|</math>;有一边为空时,连一个完整配对也没有,积便为空。[[函数]]的输入与输出可以组成有序对,因此函数也能用这种语言描述。 另一种问题是从一个集合中选出任意一些元素。若 <math>A=\{u,v\}</math>,全部选法为 <math display="block">\varnothing,\quad\{u\},\quad\{v\},\quad\{u,v\}.</math> 把这些子集作为元素放在一起,得到 A 的'''幂集''' <math>\mathcal P(A)</math>。一个有 n 个元素的集合,每个元素都有“选”与“不选”两种状态,故幂集有 <math>2^n</math> 个元素。也可以用一串 0、1 记录这些选择;在[[概率]]中,事件的指示函数采用的就是这种记录方式。 == 按同一种标准分组 == 将整数按除以 3 的余数分组,会得到三类:余 0、余 1、余 2。每个整数恰在其中一类,各类互不重叠,合起来又包含全部整数。这样的一组非空子集叫作原集合的'''划分'''。 这里“属于同一类”有三个性质:每个数与自己同类;a 与 b 同类时,b 也与 a 同类;a 与 b 同类、b 与 c 同类时,a 与 c 也同类。这分别称为自反性、对称性和传递性。具备这三条性质的关系叫作等价关系。 给定等价关系,把与 a 等价的所有元素收集起来,便得到 a 的等价类。若两类共享一个元素 z,第一类的任意元素可以经由 z 与第二类的代表相连,由对称性和传递性可知它也在第二类;反过来也成立。因此两类一旦相交就必相同。这说明等价类确实形成划分。反过来,从任意划分出发,把“在同一块中”作为等价的定义,也具有上述三条性质。 “看起来接近”未必能如此分组。例如把两个相差不到 1 的实数称为接近,0 与 0.6 接近,0.6 与 1.2 接近,0 与 1.2 却不接近。缺少传递性时,就不能据此直接形成互不重叠的等价类。整数的[[同余]]提供了严格成立的分组例子。 == 无限集合的大小 == 对有限集合,可以数元素个数;对无限集合,可以改问元素能否一一配对。若两集合之间存在[[函数|双射]],就称它们'''等势'''。 非负整数与非负偶数可按 <math>n\mapsto2n</math> 配对:0 配 0,1 配 2,2 配 4,依此类推。不同输入不会配到同一个偶数,每个非负偶数也恰好对应它的一半。因此无限集合可能与自己的真子集等势。 但无限集合也有不同的大小。康托尔定理说,对任何集合 A,函数 <math>f:A\to\mathcal P(A)</math> 都不可能列出 A 的全部子集。理解这个结论,可以设想每个元素 x 名下登记一个子集 f(x),然后试着构造一个没有登记过的子集。 构造方法是:检查 x 是否在自己名下的子集 f(x) 中;不在,就把 x 选入新集合,在,就不选。由此得到 <math display="block">D=\{x\in A:x\notin f(x)\}.</math> D 不可能等于任何 f(d)。如果 d 属于 D,构造规则要求 d 不属于 f(d),两集合在 d 处不同;如果 d 不属于 D,规则又要求 d 属于 f(d),仍然不同。因此总有一个子集漏在列表之外。 同时,<math>x\mapsto\{x\}</math> 能把 A 中的不同元素送到不同子集。A 可以嵌入自己的幂集,而幂集无法被 A 一一列尽,这就是幂集严格更大的含义。有限情形的 <math>2^n>n</math> 是同一个现象的计数形式。 == 集合论的发展与构造边界 == Cantor 在 1874 年的论文中比较代数实数与全体实数的大小,推动了对不同无限规模的研究。[https://mathshistory.st-andrews.ac.uk/HistTopics/Beginnings_of_set_theory/ MacTutor 集合论史]介绍了这一工作及后续的发展。 研究也表明,并非随便描述一个“全体”都能得到集合。若假设所有不属于自身的集合组成一个集合 R,再问 R 是否属于自身,就会出现矛盾:属于自身便不符合收集条件,不属于自身又符合条件而应被收集。这是罗素悖论的形式。 Zermelo 在 1908 年提出公理系统,限制哪些构造能够产生集合。其中的分离原则允许从一个已给定的集合中筛选满足条件的元素,而不直接承认一个包含所有集合的全集。这样,开头从骰子全集 U 中筛选偶数,与任意搜集“所有集合”便有了明确区别。[https://plato.stanford.edu/entries/zermelo-set-theory/ Stanford Encyclopedia:Zermelo’s Axiomatization of Set Theory] == 参考资料 == * [https://www.jirka.org/ra/html/sec_basicset.html Jiří Lebl,Basic Analysis,Basic set theory]:集合、函数与大小比较。 * [https://mathshistory.st-andrews.ac.uk/HistTopics/Beginnings_of_set_theory/ J. J. O’Connor、E. F. Robertson,A history of set theory]。 * [https://plato.stanford.edu/entries/zermelo-set-theory/ Stanford Encyclopedia of Philosophy,Zermelo’s Axiomatization of Set Theory]。 * 相关条目:[[函数]]、[[逻辑]]、[[组合数学]]、[[概率]]、[[拓扑空间]]。 [[分类:基础与逻辑]]
返回
集合
。