求证:从区间(0,1)到自然数集ℕ的函数集合是否可数?
你的思路方向是对的,但得先理清一个关键区别:可数个可数集的乘积,和不可数个可数集的乘积,基数完全不是一回事。咱们一步步把这个问题拆解清楚:
首先明确核心对象:我们要讨论的是所有满足 ( f: (0,1) \to \mathbb{N} ) 的函数构成的集合,记为 ( \mathbb{N}^{(0,1)} )。
你的思路拆解
你提到“单个定义域元素对应的函数集合是可数的,由此可推总函数数为 ( \mathbb{N} \times \mathbb{N} \times \mathbb{N} \times \dots )”——这个表述的核心逻辑是对的:每个定义域中的实数 ( x ),函数值 ( f(x) ) 都有 ( \mathbb{N} ) 种选择,因此整个函数集合等价于所有这些选择的笛卡尔积。
但这里的关键细节不能错:这个乘积是不可数个 ( \mathbb{N} ) 的乘积(因为(0,1)是不可数集,包含的实数数量是不可数无穷),而不是可数个 ( \mathbb{N} ) 的乘积。这两者的基数差异极大。
正式证明:该集合是不可数的(且基数远大于连续统)
我们可以通过基数运算和康托尔定理来严谨推导:
基数定义:
- ( |\mathbb{N}| = \aleph_0 )(可数集的基数,阿列夫零)
- ( |(0,1)| = \mathfrak{c} = 2^{\aleph_0} )(连续统的基数,等于全体实数的基数)
函数集合的基数计算:
从集合 ( A ) 到集合 ( B ) 的所有函数构成的集合,其基数记为 ( |B|^{|A|} )。因此我们的目标是计算 ( \aleph_0^{\mathfrak{c}} )。根据基数运算规则:
- 首先,( \aleph_0 \leq 2^{\aleph_0} = \mathfrak{c} ),因此 ( \aleph_0^{\mathfrak{c}} \leq (2{\aleph_0}){\mathfrak{c}} = 2^{\aleph_0 \times \mathfrak{c}} )
- 由于 ( \aleph_0 \times \mathfrak{c} = \mathfrak{c} )(可数集与不可数集的笛卡尔积,基数等于不可数集的基数),所以 ( 2^{\aleph_0 \times \mathfrak{c}} = 2^{\mathfrak{c}} )
- 另一方面,( 2^{\mathfrak{c}} \leq \aleph_0^{\mathfrak{c}} )(因为 ( 2 \leq \aleph_0 ),两边取 ( \mathfrak{c} ) 次幂后不等式依然成立)
综上可得:( \aleph_0^{\mathfrak{c}} = 2^{\mathfrak{c}} )
不可数性结论:
根据康托尔定理,对于任意集合 ( S ),( |2^S| > |S| )。这里 ( S=(0,1) ),所以 ( 2^{\mathfrak{c}} > \mathfrak{c} ),显然远大于可数集的基数 ( \aleph_0 )。因此 ( \mathbb{N}^{(0,1)} ) 是不可数集,且是比实数集基数更大的不可数集。
更直观的简化证明:至少是不可数的
如果觉得基数运算太抽象,我们可以用一个更易懂的方法证明它至少不可数:
取(0,1)中的一个可数子集,比如 ( { \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \dots } )。对于每个函数 ( f \in \mathbb{N}^{(0,1)} ),我们可以对应一个序列 ( (f(\frac{1}{2}), f(\frac{1}{3}), f(\frac{1}{4}), \dots) ),这个序列属于 ( \mathbb{N}^{\mathbb{N}} )(从ℕ到ℕ的函数集合)。
我们知道 ( \mathbb{N}^{\mathbb{N}} ) 是不可数的(用康托尔对角线法即可证明:假设它可数,列出所有序列 ( s_1, s_2, s_3, \dots ),构造一个新序列 ( t ),使得 ( t(n) = s_n(n)+1 ),则 ( t ) 不在列表中,矛盾)。
由于我们构造的映射是从 ( \mathbb{N}^{(0,1)} ) 到 ( \mathbb{N}^{\mathbb{N}} ) 的单射(不同的函数对应不同的序列),而 ( \mathbb{N}^{\mathbb{N}} ) 不可数,因此 ( \mathbb{N}^{(0,1)} ) 必然也不可数。
内容的提问来源于stack exchange,提问作者Bhaskar

