可数与不可数
我们称两个(有限或无限)集合具有相同的基数(cardinal number),假若它们之间能建立一个双射。与 有相同基数的集合称为可数集。
命题1:有理数全体 是可数集
将有理数 写成 的形式,视为可数个可数集之并,仍为可数集。
命题2:实数全体 是不可数集
一种常见的证明方法是,在实数的无限小数定义下,构造一个不在列表中的数,用反证法证明是不可数的。可能是没有深入了解实数的这种定义方式,我目前实在是不好接受它证明 不在列表中的步骤(这里有一些东西纠缠不清),所以这里就不再介绍这个方法,直接来看基于Dedekind 分割定义的,由实数基本定理,或者说通过实数的连续性来证明的方法。
证明1(Cantor 闭区间套定理):设 是个由实数组成的可数集:
又给定了一个非空闭区间。
(i)给定实数 以及一个非空闭区间,一定有一个闭区间,使得;
设 且,令。其他情况同理。
(ii)存在非空闭区间,使得;
(i)(ii)
(iii)若已有 个非空闭区间,使得
使用 次(ii) 的结论
(iv)对于如上构筑的区间套,我们有;
对于任意的,都有,所以。
(v)非空闭区间 中至少有一个数 不属于集合;
(iv) 的自然推论
(vi)非空闭区间 不可数;
综上,任意的可数集,闭区间中总可以找到数,故闭区间是不可数的, 自然更是不可数。
证明2(Heine-Borel 有限覆盖定理):
(i)设,其中,则
被覆盖的闭区间的长度,小于等于覆盖区间族的长度,又因为开区间族有“重叠”,故严格小于。
(ii) 是个有界闭区间; 是个开区间族, 是它的指标集,设 ,则
有限覆盖定理与(i),用 代表具体的区间长度。
(iii)设 是个可数集,则对任何的,有可数个开区间,使得
利用 来取 的长度,可以限制无限区间族的总长度。
(iv)非空闭区间 不是可数集。
区间 不符合可数集的性质(iii),即不可用总长度任意小的区间族覆盖。(其实这也是实数连续性的一种说明)
王镁老师曾引用过一句话:“数学家做的是狐狸的工作,到达了一个地方,却用尾巴把脚印都扫掉了”。尽管在写书的时候,很多有心的作者会尽量介绍概念定理的前后联系,但受限于认知规律,即使讲到了,学生在获得大量的例子或者实践前,也没法对这个“联系”或者“意义”有切身的感受。这样说来,相比于从前往后勾连,或许从后往前勾连的效果要好些。
最后稍稍讨论一下研究可数集的意义。当然近从这里看是看不出来的,这篇文章与初学的视角没什么不同。但昨晚与田孟森学长讨论那个上下积分的问题时,我尝试将上下积分视为上下极限的应用,但这需要构造一个序列——这要求可数。由于Riemann 积分的分划、选点都是在实数上的,而实数不可数,所以我的想法无法实现(多遗憾呐)。这可以说是可数集这个概念的意义的一个很好的例子。
概括来说,可数的性质,告诉我们一个数集是否可以视为一个序列来处理。这是相当有力的,毕竟我们极限的第一部分就在研究序列的极限。(这也部分说明了序列极限的意义,不仅是用来求积分,更不只是函数极限的铺垫)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?