城市尽头有一家“希尔伯特旅馆”,楼层号是 1、2、3……一直排到无穷。前台小哥每天要接待无穷无尽的队伍,他的看家本领是“发房卡”:只要能让每位客人拿到一张独一无二的房卡,且没有空房闲置,这支队伍就算安顿下来了。自然数队、偶数列队排着队都能入住,甚至密密麻麻的有理数队也靠“蛇形排队”全住了下来。可当他遇到实数队时,无论怎么设计房卡方案,总会冒出几位客人拿不到房卡。这让他明白:无穷和无穷不一样,有的无穷“数得过来”,有的无穷“大到发不完房卡”。本文就借这家旅馆的三样道具——房卡、蛇形排队、对角线捉漏——讲清楚集合论里的基数、可数集判定、运算封闭性、有理数可数、实数不可数、康托尔对角线法与连续统假设。
一句话价值:理解“无穷的层次”是 AI 从业者看懂数据建模与算法分析的地基——它决定你能否给海量样本可靠编号、能否无损压缩特征空间,以及为什么连续参数空间永远无法靠蛮力穷举。
可视化演示
集合基数衡量集合元素多少,可数集可与自然数建立双射。本文详解可数集与不可数集的判定方法、可数集的运算封闭性、有... 切换模式查看不同维度。
本节配有交互动效(进入视口后自动加载,约 3KB)。
可数集的定义:核心原理 动态展示关键流程与数据流动 交互控件调节参数实时渲染 f(x) = transform(x) 核心概念的可视化呈现
基数与等势
前台小哥面前摆着两张登记表,他要判断两支无穷队伍谁大谁小。数人数是行不通的,因为永远数不完。他的办法是“结对子”:让 A 队和 B 队的客人逐个配对,如果每个人都恰好找到一个搭档,没有空位、也没有两个人抢同一位搭档,他就宣布“这两队一样多”。三人的小队和另一支三人的小队能配上;奇号房和偶号房也“能配上”——虽然房号本身无穷无尽。
数学上,“集合的大小”叫做基数(cardinality),记作 $|A|$。“能配对”叫做等势(equipotent)。两支队伍基数相同的严格判据,是存在一个双射(bijection):既是单射(不同的人配到不同的搭档),又是满射(对面的每个人都有人来配)。有限集的基数就是元素个数,比如 $|\{\text{苹果}, \text{香蕉}\}| = 2$。真正让人吃惊的是无限集:自然数集 $\mathbb{N}=\{1,2,3,\ldots\}$ 与正偶数集 $\{2,4,6,\ldots\}$ 等势,因为映射 $n \mapsto 2n$ 一对一且全覆盖——一个无穷集合可以和自己的真子集一样大,这正是“无限”的定义特征。
前台小哥从此把“结对子”奉为铁律:发房卡之前,先看两支队伍能不能配上对。自然数队和偶数队能配上,所以双人间并不会比单人间多。基数这把尺,让“无穷”第一次有了刻度。
- 双射的含义$\varphi$ 同时是单射($A$ 中不同元素映到 $B$ 中不同元素)和满射($B$ 中每个元素都被某个 $A$ 中元素映到),保证“一人一搭档、无人落单、无人被抢”。
- 等势记号$A \approx B$ 表示 $A$ 与 $B$ 等势,读作“$A$ 与 $B$ 一样大”。
- 有限与无限的分界有限集的基数是某个自然数;无限集则可以用“能否与自己的真子集等势”来识别。
可数集判定
有了“结对子”这把尺,前台小哥接下了新任务:判断一支队伍能不能住进旅馆——每位客人都能拿到一张独一无二的房卡,房号是 1、2、3……而且每一间房最终都有人入住。对于无穷队伍,这等价于要求:存在一个“永久排队方案”,让队伍里每个元素都按照第 1 个、第 2 个、第 3 个……的次序依次出场,且不重不漏。
数学上,若集合 $A$ 能与自然数集 $\mathbb{N}$ 建立双射,称 $A$ 为可数无限集;有限集与可数无限集统称可数集(countable set);凡不是可数集的集合叫不可数集。判定时最实用的武器是枚举法:只要你能写出一个规则,让元素按顺序全部列出来,集合就是可数的。更简洁的判据是单射版本:$A$ 可数当且仅当存在单射 $f: A \to \mathbb{N}$——每个元素被打上一个不同的自然数号码。由此立刻得到推论:可数集的任何子集仍可数;自然数的每个无限子集(比如全体平方数)仍然与 $\mathbb{N}$ 等势。
前台发现了一条规律:只要你的集合是“从自然数里挑出来的”或者“能按顺序列出来的”,房卡就永远够用。可数判定就像一张万能入住表,比傻傻地数人数方便得多。
- 单射的意义$f(a)$ 是元素 $a$ 的房号;单射保证不同元素不会领到同一张房卡。
- 号码集合$f(A) = \{f(a) : a \in A\}$ 是 $\mathbb{N}$ 的一个子集,它要么有限(此时 $A$ 有限),要么是一个无限子集。
- 无限子集也可数把 $f(A)$ 的元素按从小到大重新排列,就得到与 $\mathbb{N}$ 的双射。
运算封闭性
旅馆生意红火,一下子来了好几支队伍:偶数组、奇数组、平方数组、整数组……前台不得不操心:这些队合并、混排、两两组合住进同一栋楼,还住得下吗?换句话说,可数性在集合运算下会不会被“撑破”?
第一个结论是:若 $A$、$B$ 可数,则 $A \cup B$ 可数。排队策略很朴素——先给 $A$ 的元素发奇数号房 1、3、5、…,再给 $B$ 的元素发偶数号房 2、4、6、…,重复出现的元素删掉即可。反复使用这个技巧,有限个可数集的并集都可数。更强的结论是:可数个可数集的并集仍然可数。把第 $i$ 个集合的第 $j$ 个元素放进“第 $i$ 行第 $j$ 列”的无限表格,再沿“行号加列号”逐条对角线蛇形编号——这正是本文开头可视化演示的桌面推演。同样的表格技巧也证明:若 $A$、$B$ 可数,则笛卡尔积 $A \times B$ 可数。于是 $\mathbb{N} \times \mathbb{N}$ 可数,整数集 $\mathbb{Z}$ 可数(两个 $\mathbb{N}$ 的拼接)。
前台感叹:可数集是块“百搭积木”,怎么拼、怎么并、怎么组合,都撑不破旅馆的容量。这也埋下一个伏笔——既然拼来拼去都可数,会不会所有无穷集合其实都可数?答案即将被推翻。
- 并集符号$\bigcup_{i=1}^{\infty} A_i$ 把所有队伍的人合并成一支大队,$A_i$ 是第 $i$ 支队伍。
- 表格化第 $i$ 行放 $A_i$ 的元素 $a_{i,1}, a_{i,2}, \ldots$,构造一张无限行无限列表格。
- 蛇形编号沿“行号与列号之和”从小到大的对角线依次编号,保证每个格子都在有限步内被数到。
- ℵ₀ 的含义$\aleph_0$(读作“阿列夫零”)是自然数集的基数,也是最小的无穷基数。
有理数可数
有理数队是前台遇到的第一支“看上去特别多”的队伍:1 和 2 之间夹着 $3/2$、$4/3$、$99/100$……谁都觉得有理数比整数多得多。前台试着按老规矩发房卡,发现出奇地顺利——关键是把每个正有理数 $p/q$ 看成一个坐标点:分子 $p$ 是横坐标,分母 $q$ 是纵坐标。全体正有理数就落在第一象限的整数方格点上。
把这些方格点排成一张无限行无限列的表格:第 $q$ 行第 $p$ 列放分数 $p/q$。从左上角开始,按“分子加分母之和”从 2 到 3 到 4……逐条对角线蛇形编号:$1/1$ 是 1 号,$2/1$ 是 2 号,$1/2$ 是 3 号,$1/3$ 是 4 号,$2/2$ 是 5 号……每个格子都会在有限步内拿到号码,这就是上方可视化动画演示的过程。
最后做一次“约分去重”:$4/2$ 和 $2/1$ 是同一个数,只保留最简形式。于是正有理数集与自然数建立了双射;再并上 $0$ 和全体负有理数(相当于再接入两支可数队伍,并集仍可数),得到全体有理数可数。这个结果第一次让人类意识到:稠密不等于多——数轴上密密麻麻的有理数,其“数量”与稀疏的整数完全相同。
前台把“蛇形排队法”刻在旅馆大门上:再密、再挤的集合,只要你能把它摆进一张无限表格,就能按对角线一个个叫号。可数的范围,比直觉大得多。
- 坐标化每个正有理数 $p/q$ 对应表格中的格子 $(p, q)$,分子决定列,分母决定行。
- 对角线分层一个格子属于第 $s = p + q$ 条对角线,$s$ 从 2 开始逐条增加。
- 蛇形顺序偶数和对角线从左下到右上,奇数和对角线从右上到左下,保证路径连续。
- 约分去重同一个有理数的不同写法只保留一次,去重后仍然是可数序列。
实数不可数
直到实数队站在旅馆门口。前台用尽了排队方案——按大小排、按奇偶排、按小数位排——每次都有人漏掉。他开始怀疑:实数队可能根本住不进这家旅馆。怀疑要变成证明,需要一场完美的“捉漏”行动。
康托尔的思路对准开区间 $(0,1)$,即 0 和 1 之间的全体实数。假设 $(0,1)$ 可数,就能把它全部列出:$r_1, r_2, r_3, \ldots$。把每个数写成无限小数 $r_i = 0.d_{i1}d_{i2}d_{i3}\cdots$,例如 $r_1 = 0.14356\ldots$。这些小数排成一个无限的方阵,对角线上的数字是 $d_{11}, d_{22}, d_{33}, \ldots$。
现在构造一个新数 $b = 0.b_1 b_2 b_3 \cdots$,规则是:若 $d_{ii} = 4$ 则 $b_i = 7$,否则 $b_i = 4$。$b$ 的每一位都与表格第 $i$ 行的第 $i$ 位不同,所以 $b$ 不等于任何 $r_i$;可 $b$ 明明落在 $(0,1)$ 里——要么列表漏掉了它,要么“列全了”本身就是谎言。矛盾说明 $(0,1)$ 不可数。再看整条实数轴:映射 $f(x)=\tan(\pi(x-\tfrac12))$ 把开区间 $(0,1)$ 单调地映满 $\mathbb{R}$,所以实数集 $\mathbb{R}$ 同样不可数。
前台把这份“捉漏报告”存档:一旦想用房卡安顿 $(0,1)$,对角线就会立刻指着一位没拿到卡的新客人说“你漏了他”。实数队的基数 $2^{\aleph_0}$,从此写进了旅馆的房费表。
- 假设列表反证法的起点——假设 $(0,1)$ 可数,则存在一个序列 $r_1, r_2, r_3, \ldots$ 覆盖全部元素。
- 十进制展开每个 $r_i$ 写成无限小数,$d_{ij}$ 是 $r_i$ 的第 $j$ 位数字。
- 对角线取反新数第 $i$ 位取与 $d_{ii}$ 不同的值(4 变 7,其余变 4),同时规避 $0.3999\ldots$ 与 $0.4000\ldots$ 的双重表示歧义。
- 矛盾收束$b$ 在 $(0,1)$ 内却与每个 $r_i$ 都不同,说明“列出全部”不可能。
对角线方法
前台把那次捉漏拆开细看,发现自己其实用了一件通用武器:不管你把什么东西排成一张声称“完整”的列表,我都能沿着对角线制造一个不在表上的新东西。这个方法后来被称为康托尔对角线法,它对任何“声称列全了”的列表都有效,是证明不可数的最锋利刀刃。
最纯粹的形式是二进制串。考虑所有由 0、1 组成的无限序列,例如 $010101\ldots$。假设它们可数,排成表:第 $i$ 行的序列记作 $s_i$。现在取 $s_i$ 的第 $i$ 位并翻转,得到新序列 $t$。$t$ 的每一位都与对应行那一列上的数字相反,所以 $t$ 不等于任何 $s_i$——又捉到一条漏网之鱼。因此全体二进制序列不可数。
这个手法立刻推出集合论的核心定理——康托尔定理:任何集合 $A$ 的幂集($A$ 的全部子集组成的集合)基数严格大于 $A$。把每个子集对应到它的“特征串”(第 $i$ 位为 1 表示第 $i$ 个元素在子集里),子集全体便与二进制串一一对应,于是不可数。对自然数取幂集,恰好得到 $|P(\mathbb{N})| = 2^{\aleph_0} = |\mathbb{R}|$——这就是上一节那个神秘基数的来源。
前台意识到,旅馆的房卡方案是“可列理性”的极限:一旦你把某种东西的全体列表化,对角线就永远能挑出新东西。无穷不是一座山,而是越爬越高的台阶。
- 幂集定义$\mathcal{P}(A)$ 是 $A$ 的全部子集组成的集合,符号 $2^{|A|}$ 表示它的基数。
- 特征串编码把 $A$ 的元素排成 $a_1, a_2, \ldots$,子集 $S$ 对应于一个二进制串,第 $i$ 位为 1 表示 $a_i \in S$,为 0 表示不在。
- 对角线论证若 $A$ 与 $\mathcal{P}(A)$ 能配上对,把配对对应的特征串列表沿对角线翻转,就能构造一个任何配对都没覆盖的新子集——所以配不上。
- 无穷的阶梯对任意集合反复取幂集,基数逐层暴涨,不存在“最大的无穷”。
连续统假设
现在前台手里有两档无穷:可数档 $\aleph_0$(自然数、整数、有理数)和实数档 $2^{\aleph_0}$(实数、二进制串、幂集)。一个自然的问题冒出来:这两档之间,还有没有别的档位?他翻遍了整个集合论的仓库,既找不到中间档,也证不出没有。
康托尔猜测:中间没有。这个猜想就是连续统假设(Continuum Hypothesis,简称 CH)。用旅馆的语言说,它断言:实数的任何一个无限子集,要么与自然数一样多(可数),要么与实数本身一样多(等势于全体实数),不存在“不多不少卡在中间”的子集。
20 世纪,哥德尔证明了 CH 与 ZFC 公理系统相容——把 CH 加进 ZFC 不会推出矛盾;科恩随后用“力迫法”证明 CH 的否定也与 ZFC 相容——在 ZFC 里否认 CH 同样不会推出矛盾。也就是说,CH 在 ZFC 的框架内既不能被证明为真,也不能被证明为假:它是独立于公理系统的命题。想给它的真伪定罪,必须先选新公理(例如大基数公理)。这是数学史上第一次发现:一个自然、具体、可陈述的数学问题,竟然“由公理说了算”。
前台合上笔记本,写下结语:旅馆的房间档位不是天定的,而是由你选择什么规则来决定的。集合论教给他的,不只是“答案是什么”,更是“哪些问题需要先选好世界观”。
- 存在量词取反$\nexists$ 表示“不存在”,整个式子声称:不存在夹在两档之间的中间基数额外档位。
- κ 的身份$\kappa$ 是假设中的中间基数,介于最小无穷基数与实数基数之间。
- 独立性的意义ZFC 既推不出 CH,也推不出非 CH——两种世界(有中间档 / 没有中间档)都自洽。
AI 应用场景
场景 1:训练样本发房卡——数据编号与分布式分片
阶段:数据预处理与存储
解决的问题:训练集动辄上亿条样本,传统自增主键在分布式环境下并发插入会出现缺口与冲突。可数性思想给了确定性保证:全体样本是有限集(因此当然可数),总能与自然数建立双射,所以可以预设一个全局整数 ID 方案,把“发房卡”变成一件不依赖并发时序的确定事件。
具体案例:某 NLP 团队有 12 亿条评论样本。工程师按 (shard_id × 2^40 + offset) 分配整数 ID,训练时用 id % 8 决定样本去往哪张 GPU 的 DataLoader,每条样本恰好被一个进程看到,不重不漏。整个过程等价于给每个样本发一张独一无二的房卡。
场景 2:特征哈希——把无限特征名压实进有限桶
阶段:特征工程
解决的问题:用户 ID、城市名、商品词的组合千变万化,若维护全局词典,词典大小不可控。可数性视角告诉我们:字符串空间可数,而目标维度是有限档基数,比字符串空间“小一档”,所以“无损装进有限桶”在原则上不可能,冲突必然存在。理解这一点后,就不会天真地追求零冲突,而是用哈希取模加冲突叠加的 hashing trick 接受可控的近似。
具体案例:CTR 预估系统中,特征名(如 user_id=9527|item_id=88)总量上亿,统一哈希到 100 万维稀疏向量。碰撞不可避免,但经验上对模型效果影响很小——因为基数差的“压缩”必然有代价,代价可控即可用。
场景 3:连续参数空间——不可数集合上的搜索
阶段:模型训练与理论分析
解决的问题:神经网络权重是连续实数,全部可能的权重组合的集合与实数集同基数,是“不可数”的。这意味着“遍历所有参数”在原则上就不可能,任何网格搜索都只能覆盖可数个点。理解不可数性,才能理解为什么必须用梯度下降这类“沿连续空间游走”的方法,以及为什么随机初始化加迭代更新是唯一现实路径。
具体案例:大模型调参时,网格搜索只能枚举可数个格点;贝叶斯优化在连续空间里采样、评估、更新,本质上是把不可数搜索空间用可数个采样点去逼近——每一次采样都像前台给一个候选参数发了一张“试住房卡”。
Python 演示
from math import gcd def snake_rationals(limit=6): """按蛇形对角线枚举正有理数 p/q, 返回约分去重后的序列.""" result = [] seen = set() for s in range(2, 2 * limit + 1): # s = p + q 固定一条对角线 lo = max(1, s - limit) hi = min(s - 1, limit) ps = range(lo, hi + 1) if s % 2 == 1: # 奇数和对角线从右往左走 ps = reversed(list(ps)) for p in ps: q = s - p g = gcd(p, q) # 约分: 2/2 与 1/1 是同一数 key = (p // g, q // g) if key not in seen: seen.add(key) result.append(key) return result def cantor_missing(rows): """沿对角线逐位翻转, 构造不在列表中的二进制新串.""" return ''.join('1' if row[i] == '0' else '0' for i, row in enumerate(rows)) if __name__ == '__main__': seq = snake_rationals(6) print('蛇形枚举正有理数(前20个):') for i, (p, q) in enumerate(seq[:20], 1): print(' #{:>2}: {}/{}'.format(i, p, q)) print('约分去重后共有 {} 个不同值'.format(len(seq))) rows = ['11001', '00110', '10011', '01100', '11110'] print('对角线法演示: 列表 =', rows) new = cantor_missing(rows) print('翻转对角线得到新串:', new, '不在列表内') print('幂集基数演示: 2^3 =', 2 ** 3, '> 3')
for s in range(2, 2 * limit + 1):按“分子加分母之和”把点阵分成一条条对角线,逐队叫号。ps = range(lo, hi + 1)计算当前对角线上合法的分子范围,对应点阵里的有效格子。if s % 2 == 1: ps = reversed(list(ps))奇数和对角线掉头向右上走,形成蛇形,保证路径不间断。g = gcd(p, q)找到最大公约数用于约分,让 $4/2$ 与 $2/1$ 合并成同一个数。if key not in seen:用集合记账,同一个有理数只发一次房卡。''.join('1' if row[i] == '0' else '0' for i, row in enumerate(rows))对角线捉漏:把第 $i$ 行的第 $i$ 位翻转,让新串与每一行都至少有一位不同。
常见误区
误区无限就是无限,反正都数不完,还分什么大小?说“实数比自然数多”听起来像玄学。
正解无穷的大小用双射这把尺来量:只要能一对一配上,就一样大。自然数与正偶数能配上,所以一样多;而对角线法证明实数无论如何配不上自然数,所以实数严格更多。就像旅馆前台说的:有的队伍发得完房卡,有的队伍发不完,这就是本质区别。
为何常见:有限世界的直觉是“数完了才知道多少”,而无限世界里“数”退化为“配”——这一层观念转化没建立,就觉得所有无穷等同。
误区可数集既然叫“可数”,应该能数完吧?但自然数是无穷的,永远数不完,怎么还能叫“可数”?
正解可数指的是“存在一套编号方案”,而不是“数得完”。方案保证:任何元素都会在某个有限步被数到,比如蛇形编号里,再偏远的格子也有一个确定的编号。数过程是无穷长的,但每一步都指向一个具体元素。
为何常见:把“过程的无限延续”与“方案的存在性”混为一谈。数学里讨论的是规则的可行性,不是时间上能否执行完毕。
误区有理数在每两个整数之间都有无穷多个,比如 0 和 1 之间就有无限多个分数,肯定比整数多多了。
正解“稠密”和“多”是两回事。稠密描述的是位置分布——处处都有;多少描述的是基数——能不能配上对。蛇形表格给了有理数一个明确编号,证明它们与整数一样多。数轴上有理数再密,也只是可数的一档。
为何常见:用空间上的“挤”代替数量上的“多”,这是把几何直觉错误地投射到基数概念上。
误区康托尔对角线法就是“实数不可数证明”里的一个技巧,学完就扔。
正解它是一个通用武器:只要有人声称“我列全了某种对象”,你就能沿对角线构造一个不在列表里的新对象。它适用于二进制序列、幂集、函数集合,并推出康托尔定理 $|P(A)| > |A|$ 对任何集合成立。
为何常见:教材通常只在一个场景展示它,读者没抽象出“列表化 + 对角线取反 + 制造新对象”的通用模式。
误区CH 就像费马大定理一样,只是暂时没人证出来,总有一天数学家会给出确定答案。
正解哥德尔与科恩已经证明 CH 独立于 ZFC:在 ZFC 框架内既不能证真也不能证伪。想定它的真伪,必须先额外选择新公理。它不是“等待被证明的难题”,而是“公理系统管不到的悬案”。
为何常见:把数学命题都默认为“确定的事实”,忽略了命题的真值依赖于公理基础这一层——集合论的现代视角恰好打破了这种朴素信念。
面试题
Q1. 在与自然数比“多少”的较量中,下列哪个集合与自然数集等势(基数相同)?
- A.正偶数集← 正确答案
- B.(0,1) 开区间
- C.实数集
- D.自然数幂集
答案:A。判断等势看能否建立双射。$n \mapsto 2n$ 把自然数一对一映到正偶数,正偶数队自然能领到奇数号房卡;而实数、(0,1)、幂集的基数都严格大于自然数,属于“发不完房卡”的另一档。故选 A。
Q2. 有限集合(如 {1,2,3})在可数性分类中属于哪一类?
- A.可数集← 正确答案
- B.不可数集
- C.没有基数的集合
- D.与实数集等势的集合
答案:A。约定俗成,可数集 = 有限集 ∪ 可数无限集。有限集虽然不需要发无穷张房卡,但同样能和自然数的一个有限子集配对,按定义归入可数。故选 A。
Q3. 希尔伯特旅馆客满时,又来了 5 位新客人。前台最合理的安排是?
- A.请原住客每人搬到房号加 5 的房间← 正确答案
- B.拒绝接待,因为已经客满
- C.让新客人睡大厅
- D.让原住客全都搬去偶数层
答案:A。无限旅馆“客满”不等于没地方。让 1 号搬到 6 号、2 号搬到 7 号,即 $n$ 号搬到 $n+5$ 号,原住客都有新房间,1 到 5 号房就空出来给新客人——这正是映射 $n \mapsto n+5$ 创造出一个有限空闲区间。故选 A。
Q4. 证明有理数集可数的核心构造是?
- A.把正有理数排成无限表格,蛇形对角线编号← 正确答案
- B.使用康托尔对角线法逐位取反
- C.用幂集放大构造
- D.将有理数按大小直接排列成第 1 第 2 个
答案:A。可数靠“排队方案”:把 $p/q$ 放到第 $q$ 行第 $p$ 列,再按分子分母之和逐条对角线蛇形编号,最后约分去重。康托尔对角线法恰恰是证明“不可数”的武器,方向相反;有理数无法按大小排成“第 1 个、第 2 个”,因为任意两个之间还有无穷多个。故选 A。
Q5. 下列哪些集合是可数集?
- A.整数集← 正确答案
- B.有理数集← 正确答案
- C.自然数与自身的笛卡尔积 N×N← 正确答案
- D.(0,1) 开区间
答案:ABC。整数可看成两个自然数队的拼接,并集仍可数;有理数靠蛇形表格编号;N×N 同样用表格编号,所以 A、B、C 都可数。D 被康托尔对角线法证明不可数。故选 ABC。
Q6. 康托尔对角线法直接证明了哪个结论?
- A.开区间 (0,1) 不可数← 正确答案
- B.有理数集可数
- C.整数集可数
- D.连续统假设成立
答案:A。把 (0,1) 内全部小数假设列成表,沿对角线逐位取反构造新数 $b$,$b$ 在区间内却不在表上,矛盾,故 (0,1) 不可数。对角线法用于制造“不在列表上的新东西”,不能证明可数,与连续统假设的真伪也无直接关系。故选 A。
Q7. 关于可数集的运算封闭性,下列说法正确的是?
- A.两个可数集的并集仍可数← 正确答案
- B.可数个可数集的并集仍可数← 正确答案
- C.可数集的幂集可数
- D.两个可数集的笛卡尔积可数← 正确答案
答案:ABD。并集用奇偶号交错即可安排;可数并和笛卡尔积用表格蛇形编号搞定,所以 A、B、D 正确。幂集是例外:$|P(A)| = 2^{|A|}$ 永远严格大于 $|A|$,可数集的幂集不可数。故选 ABD。
Q8. 实数集 R 的基数与下列哪一个相同?
- A.阿列夫零
- B.有理数集的基数
- C.自然数幂集的基数← 正确答案
- D.正整数集的基数
答案:C。(0,1) 经 $f(x)=\tan(\pi(x-\tfrac12))$ 映满整条实数轴,故 $|R|=|(0,1)|$;开区间不可数,且与二进制序列、自然数子集一一对应,故 $|R|=|P(N)|=2^{\aleph_0}$。A、B、D 都属于 $\aleph_0$ 阵营。故选 C。
Q9. 关于连续统假设(CH),下列说法正确的是?
- A.康托尔猜测不存在介于 ℵ0 与 2^ℵ0 之间的基数← 正确答案
- B.CH 在 ZFC 公理系统内不可判定← 正确答案
- C.CH 已被证明为假
- D.哥德尔与科恩分别证明了 CH 的相容性与其否定的相容性← 正确答案
答案:ABD。CH 正是康托尔的“中间档”猜想;哥德尔证明 ZFC 加 CH 不出矛盾,科恩用力迫法证明 ZFC 加非 CH 也不出矛盾,所以 CH 与 ZFC 独立、不可判定。它既未被证真也未被证伪。故选 ABD。
Q10. 康托尔定理“集合的幂集基数严格大于原集合”成立的范围是?
- A.仅对有限集成立
- B.对一切集合成立← 正确答案
- C.仅对无限集成立
- D.仅对可数集成立
答案:B。康托尔定理 $|P(A)| = 2^{|A|} > |A|$ 对任意集合成立:有限集显然($2^n > n$);无限集用“特征串 + 对角线翻转”论证,任何配对都会漏掉一个新子集。它不是经验结论,而是普遍定理。故选 B。