趣题:如何编程列出一个集合的所有子集
By 苏剑林 | 2016-03-04 | 29881位读者 | 引用集合上的一个等价关系决定了几何的一个划分,反之亦然,这直观上是不难理解的。但是,如果我要问一个有$n$个元素的有限集合,共有多少种不同的划分呢?以前感觉这也是一个很简单的问题,就没去细想,但前天抽象代数老师提到这是一个有相当难度的题目,于是研究了一下,发现里面大有文章。这里把我的研究过程简单分享一下,读者可以从中看到如何“从零到有”的过程。
以下假设有$n$个元素的有限集合为$\{1,2,\dots,n\}$,记它的划分数为$B(n)$。
前期:暴力计算
$n=3$的情况不难列出:
$$\begin{aligned}&\{\{1,2,3\}\},\{\{1,2\},\{3\}\},\{\{1,3\},\{2\}\},\\
&\{\{2,3\},\{1\}\},\{\{1\},\{2\},\{3\}\}\end{aligned}$$
几个有关集合势的“简单”证明
By 苏剑林 | 2014-10-01 | 81626位读者 | 引用我们这学期开设《实变函数》的课程,实变函数的第一章是集合。关于无穷集合的势,有很多异于直觉的结论。这些结论的证明技巧,正是集合论的核心方法。然而,我发现虽然很多结论跟我们的直觉相违背,但是仔细回想,它又没我们想象中那样“离谱”。而我们目前使用的教科书《实变函数论与泛函分析》(曹广福),却没有使用看来简单的证明,反而用一些相对复杂的定理,给人故弄玄虚的感觉。
一、全体实数不能跟全体正整数一一对应
这是集合论中的基本结论之一。证明很简单,如果全体实数可以跟全体正整数一一对应,那么$(0,1)$上的实数就可以跟全体正整数一一对应,把$(0,1)$上的全体实数表示为没有0做循环节的无限小数(比如0.1表示为0.0999...),那么设一种对应为:
$$\begin{aligned}&a_1=0.a_{11} a_{12} a_{13} a_{14}\dots\\
&a_2=0.a_{21} a_{22} a_{23} a_{24}\dots\\
&a_3=0.a_{31} a_{32} a_{33} a_{34}\dots\\
&\dots\dots
\end{aligned}$$
实数集到无理数集的双射
By 苏剑林 | 2014-09-22 | 35950位读者 | 引用集合论的结果告诉我们,全体实数的集合$\mathbb{R}$跟全体无理数的集合$\mathbb{R} \backslash \mathbb{Q}$是等势的,那么,如何构造出它们俩之间的一个双射出来呢?这是一个颇考读者想象力的问题。当然,如果把答案给出来,又似乎显得没有那么神秘。下面给出笔者构造的一个例子,读者可以从中看到这种映射是怎么构造的。
为了构造这样的双射,一个很自然的想法是,让全体有理数和部分无理数在它们自身内相互映射,剩下的无理数则恒等映射。构造这样的一个双射首先得找出一个函数,它的值只会是无理数。要找到这样的函数并不难,比如我们知道:
1、方程$x^4 + 1 = y^2$没有除$x=0,y=\pm 1$外的有理点,否则将与费马大定理$n=4$时的结果矛盾。
2、无理数的平方根依然是无理数。
根据这些信息,足以构造一个正实数$\mathbb{R}^+$到正无理数$\mathbb{R}^+ \backslash \mathbb{Q}^+$的双射,然后稍微修改一下,就可以得到$\mathbb{R}$到$\mathbb{R} \backslash \mathbb{Q}$的双射。
最近评论