集合论 · 从 ∈ 到映射与量词
集合(set)是由若干互不相同、无先后次序的对象组成的整体,几乎所有数学结构都建立在它之上。本系列不谈公理化细节,只把常用的那套符号与运算逐个呈现在可交互的 Venn 图与列表上:一个元素属于还是不属于一个集合、两个集合相等 / 包含 / 不相交、如何并 / 交 / 差 / 补出新集合、集合有多大、怎样用旧集合构造新集合,以及映射与逻辑量词如何把集合串成整张网。
每页都可直接输入集合、挑选运算或谓词,即时看到 Venn 分区着色、结果外延 与基数 随之变化。
关系与运算 · 元素、包含与四则
先分清两种「属于」——元素 集合、集合 集合;再在同一张 Venn 图上做 与补集,看清每种运算对应哪一块分区。
属于与不属于:元素和集合的关系
集合最基本的问句是元素 在不在集合 里:在记 ,不在记 。集合由成员关系唯一确定,元素无序且互异;末节是没有任何元素的空集 。
相等、子集、真子集与不相交
集合与集合之间的关系全部化归为逐元素比较:元素完全一致即相等, 的元素全在 里即子集 ,若还严格更小则是真子集 ,无公共元素即不相交。
并、交、差、对称差与补
从两个集合造第三个:并 、交 、差 、对称差 ,以及相对全集的补 。每种运算的定义都是一句「取哪些元素」,在文氏图上对应一块分区;运算律则不能靠类比猜。
规模与构造 · 有多大、怎样造新集合
用基数 度量集合大小(含可数 / 不可数无限),再用笛卡尔积、幂集、划分与商集从已有集合搭出新集合。
基数:有限、可数无限与不可数
基数 是集合的大小。有限集数元素个数并满足容斥;无限集只能靠一一对应比较, 与偶数集等势,而 严格更多。
造新集合:笛卡尔积、幂集、划分与商集
四种从已有集合造新集合的方式:笛卡尔积配成有序对、幂集收集全部子集、划分切成互不相交的块、商集按等价关系归类。划分与等价关系是同一件事的两种说法。
枚举全部子集:四种算法
用四种算法不重不漏地生成全部 个子集:二进制计数、逐元素递归、迭代级联与 Gray code。四者产出同一批子集,差别在枚举次序,代价也各不相同。
枚举全部划分:三种算法
不重不漏地列出集合的全部划分,共 Bell 数 个。三种生成算法产出同一批划分而次序与代价不同,末节把块数约束加上,计数落在第二类 Stirling 数上。
映射与逻辑 · 集合之间、集合与命题
映射 把一个集合的元素送到另一个集合;集合推导 与量词 则把集合与逻辑命题接通。
映射 与像、原像、复合、逆
映射给定义域每个元素指定陪域中唯一的去处。像与原像对集合运算的保持性并不对称,复合只单向传递单射与满射,逆映射存在的充要条件是双射,末节数一数映射共有多少个。
集合推导与量词 ∀ ∃
集合推导 用谓词从全集筛出子集。量词对整个集合下判断: 给出见证, 给出反例;两者由否定互相转化,空集上的取值与量词次序是两处易错点。
命题:真假、联结词与四种命题
命题是能判真假的陈述句。联结词 / / 拼出的复合命题,其真值集合正是集合的交 / 并 / 补;四种命题里原与逆否等价、逆与否等价,而否命题不是命题的否定。
充分必要条件与集合包含
充分 / 必要条件即集合包含。把命题的真值集合 、 摆上文氏图, 与 是同一件事,四种条件对应四种包含格局;判定依赖全集的选取。
哪几页是高中范围,哪几页是扩展
它对应到代码里的什么
Set 容器: 是 has(), 是集合的并交差, 是 size。
filter:集合推导 就是 U.filter(P),谓词 P 决定去留。
map:映射 对应 A.map(f),像 是去重后的结果集(值域)。
some / every:量词 / 分别是 arr.some(P) / arr.every(P)。
GROUP BY / 等价类:数据库分组、并查集的连通分量,都是把集合按等价关系切成划分、取商集 。相关链接
- Set (mathematics) — Wikipedia en.wikipedia.org 集合的朴素定义、记号与基本运算总览。
- Naive set theory — Wikipedia en.wikipedia.org 本系列采用的「朴素集合论」层级:够日常数学使用,不涉及公理化的 ZFC 细节。
- Cardinality — Wikipedia en.wikipedia.org 基数与「一一对应比较大小」,可数 与不可数(见 实数系列的 Cantor 对角论证)。
-
Set — MDN
developer.mozilla.org
JavaScript
Set的 API,以及本系列各记号在代码里的对应。