集合的可数性

        原文地址:http://www.matrix67.com/blog/archives/416

        Cantor对集合的一些著名的研究让我们更加清楚地认识了无穷这玩意儿。Cantor发现,无穷集合之间也有大小关系,他把这种大小关系叫做集合的势(cardinality)。正整数和正偶数都有无穷多个,但到底谁要多一些呢?我们认为,正整数和正偶数一样多,因为我们可以在它们之间建立起一一对应的关系(乘2除2),因此有多少个正整数就有多少个正偶数,反过来有多少个正偶数我就能找出多少个正整数。于是我们说,正整数集和正偶数集是等势的。

    再来想一个问题,自然数和所有整数哪个多哪个少?答案还是一样多。重新排列一下所有整数,你会看到自然数和整数之间也有一一对应的关系,它们的个数一样多,两个集合也是等势的:

自然数:0,  1,  2,  3,  4,  5,  6,  7,  8, …
   整数:0, -1,  1, -2,  2, -3,  3, -4,  4, …

    Cantor还发现,有理数集与自然数集也是等势的,也就是说有理数和自然数一样多!这个证明方法可谓是数学史上真正的经典:把所有有理数写成最简分数的形式,根据分子和分母的值把它们排列成二维的阵列,然后从1/1出发沿对角线方向蛇形遍历所有的数。第i个遍历到的数与自然数i对应,正有理数集与正整数集也就有了一一对应的关系。注意这里仅仅是正有理数,不过没啥,用刚才证明整数集与自然数集等势的方法,我们也可以把正有理数扩展到全体有理数。
      

    事实上,对于任何一个集合S,如果你能找出一种方法把集合里的所有元素按顺序一个不漏地罗列出来,写成a1, a2, a3, a4, … 的形式,那么这个集合就是和自然数集等势的,因为序列的下标和自然数集就已经构成了一个一一对应的关系。我们把所有与自然数集等势的集合叫做可数集(countable set),因为它们是可以数出来的。
    并不是所有集合都是可数的。Cantor证明了,实数区间[0,1]是不可数的集合,它的势比自然数集大。你找不出什么方法能把0到1之间的所有实数一个不漏地排列出来。这个证明方法很巧妙,假设你把实数区间[0,1]里的所有数按照某种顺序排列起来,那么我总能找到至少一个0到1之间的实数不在你的列表里。把你的列表上的数全写成0到1之间的小数:

a1 = 0.0147574628…
a2 = 0.3793817237…
a3 = 0.2323232323…
a4 = 0.0004838211…
a5 = 0.9489129145…
………

    那么我就构造这么一个小数,小数点后第一位不等于a1的第一位,小数点后第二位不等于a2的第二位,总之小数点后第i位不等于ai的第i位。这个数属于实数区间[0,1],但它显然不在你的列表里。这样,我就证明了实数区间是不可数的。

    最近,Matthew H. Baker找到了证明实数区间是不可数集的一种新方法。这种方法同原来的方法完全不同。新的证明方法从一个博弈游戏出发,在两个不同的数学领域间建立起了联系,非常具有启发性。
    A和B两个人在实数区间[0,1]上玩一个游戏。首先,A在(0,1)之间选一个数a1,然后B在(a1,1)里选一个数b1;接着,A在(a1,b1)之间选一个数a2,然后B在(a2,b1)里选一个数b2……总之,以后A和B轮流取数,选的那个数必须位于前面两次选的数之间。可以看到,序列a1, a2, a3, …是一个单增的有界序列,因此游戏无限进行下去,数列{an}最终会收敛到某一个实数c。游戏进行前,A和B约定一个[0,1]的子集S,规定如果最后c∈S,则A胜,否则B胜。
    Baker发现,如果S集为可数集的话,B肯定有必胜策略。如果S集可数,那么B就可以把S集里的数排列成一个序列s1, s2, s3, … 。B的目标就是让序列{an}的极限不等于S集里的任一个数。考虑B的这样一个游戏策略:当B第i次选数时,如果选si合法,那么就选它(这样序列{an}就不能收敛到它了);否则如果这一步选si不合法,那就随便选一个合法的数(此时序列{an}已经不可能收敛到si了)。这种策略就可以保证A选出的数列的极限不是S集里的任一个数。
    有趣的事情来了。假如A和B约定好的S集就是整个实数区间[0,1],那么B显然不可能获胜;但如果[0,1]是可数集的话,B是有必胜策略的。于是我们就知道了,[0,1]是不可数集。

消息来源:http://blog.sciencenews.org/mathtrek/2008/01/small_infinity_big_infinity.html
查看更多:https://www.math.gatech.edu/~mbaker/pdf/realgame.pdf
### 整数集合作为可数集的概念与证明 #### 定义 整数集合 \( \mathbb{Z} \) 是一个无限集合,包含了所有的正整数、负整数以及零。为了说明这个集合可数的,需要展示存在一种方法能够将该集合中的每一个成员都唯一地映射到自然数集合 \( \mathbb{N} \),即建立两者之间的一一对应关系。 #### 映射构建 考虑如下方式来枚举所有整数:先列出0;接着按照绝对值从小到大排列非零整数,并交替放置正值和负值。具体来说就是这样的序列 {0, 1, -1, 2, -2, ... }。通过这种方式可以创建一个从自然数到整数的一对一双向映射函数 f(n)[^1]: 对于任何给定的 n ∈ ℕ, - 如果n=0,则f(0)=0; - 当n>0且为偶数时,设\( k=\frac{n}{2} \),则有f(n)=k; - 若n为奇数,则令\( j=\frac{(n+1)}{2} \),此时f(n)=-j。 这种映射表明每个自然数都能找到唯一的整数值相对应,反之亦然,因此实现了两个集合间的一一对应[^4]。 ```python def map_natural_to_integer(n): if n == 0: return 0 elif n % 2 == 0: return int(n / 2) else: return -(int((n + 1) / 2)) ``` 上述Python代码片段展示了如何实现这一映射过程。这不仅直观体现了整数集合是可以被计数的事实,同时也提供了一种具体的算法用于实际操作中验证这一点。 #### 形式化证明 要严格证明整数集是一个可数无穷集合,可以通过构造双射(bijection),也就是既满又单的映射g:ℕ→ℤ来进行论证。根据前面提到的方法,已经找到了这样一个合适的映射形式。因为此映射满足以下条件: - 对于不同的输入总是给出不同输出(单一) - 所有可能的目标域元素都被覆盖到了(完全) 所以依据定义可知,整数集确实构成了一个可数无穷集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值