集合论
【章首引子】"找既买过牛奶又买过面包的客户" = 交集;"买过牛奶或面包的" = 并集。SQL 里的 INNER JOIN 就是交集。整个数据库查询语言,底层就是集合论。
① 是什么:运算、关系、函数
啥集合运算与无穷
基本运算:∪ 并集(在 A 或 B)、∩ 交集(既在 A 又在 B)、− 差集(在 A 不在 B)、⊕ 对称差。笛卡尔积 A×B:所有配对 (a,b) 组成的集合。
关系与函数:笛卡尔积里挑一部分就是关系;函数是"一个输入只对应一个输出"的特殊关系。可数与不可数:自然数能一个个数出来(可数),实数连数都数不完(不可数)。康托对角线法证明实数比自然数"更高一级的无穷"。
② 怎么想到的
思解题心法
画韦恩图:∪∩− 一眼看清。
证集合论的核心定理与公式
推导思路:①把 $A\cup B$ 切成三块互不相交的部分:只在 $A$ 里的 $A\setminus B$、只在 $B$ 里的 $B\setminus A$、两边都有的 $A\cap B$,故 $|A\cup B|=|A\setminus B|+|B\setminus A|+|A\cap B|$。②同理拆分 $|A|=|A\setminus B|+|A\cap B|$ 与 $|B|=|B\setminus A|+|A\cap B|$。③把这两式相加:$|A|+|B|=|A\setminus B|+|B\setminus A|+2|A\cap B|$——交集被数了两次。④与①的结果相减,多出来的那一次 $|A\cap B|$ 被扣掉,得 $|A\cup B|=|A|+|B|-|A\cap B|$。
直觉把握:容斥原理说白了就是"加了重复的,得减回来",三元时还得把减多的补回去。AI/工程里,集合运算就是数据库 SQL 的 JOIN / UNION / EXCEPT;$|\mathcal{P}(A)|=2^{n}$ 揭示了特征组合爆炸的根源(这也是为什么要上 Lasso、树模型剪枝来做特征选择);德摩根律则是布尔检索、倒排索引里"取反条件"能被正确展开的依据。
笛卡尔积数个数:A 有 m 个、B 有 n 个,A×B 有 mn 个有序对。
分清单射/满射/双射:一对一、 onto、一一对应。双射 = 两个集合"一样大"。
③ 完整解法:三个例题
④ 用途与案例
数据库 SQL
JOIN = 笛卡尔积 + 按条件筛选。整个数据库语言底层就是集合论。
社交网络
人与人的关注、好友、屏蔽,全是集合与关系运算。
数据分析
筛选、分组、去重——DataFrame 操作就是集合运算。
数学基础
现代数学从集合论出发,定义数、函数、拓扑——是整座大厦的地基。
⑤ 延展
展知识衔接地图
往研究生走:朴素集合论 → 公理集合论/数理逻辑(ZFC、连续统假设)。往算法走:关系代数是数据库查询优化的理论核心。
以为"整体一定大于部分"。在无穷集合里失效:自然数和偶数一样大(能一一配对)。有限世界的直觉,到无穷世界全得重学。
练习
【基础】A={1,2,3}, B={2,3,4},A∩B=?
查看思路与解答
{2,3}。【进阶】实数集可数吗?
查看思路与解答
不可数。康托对角线法:假设实数可数排成表,构造一个对角线上每位都不同的新实数,它不在表里——矛盾,所以实数不可数。① ∪并、∩交、−差;笛卡尔积 = 全部配对(SQL JOIN 的祖宗)。
② 无穷世界里部分可以等于整体;实数比自然数"更高一级的无穷"。