证明实数区间不可数的新方法

    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

32 条评论

  • dahe_1984

    干点活 儿 ,没做到沙发.

  • nani

    脑袋一时没转过弯来,有个疑问:
    “假如A和B约定好的S集就是整个实数区间[0,1],那么B显然不可能获胜”,为什么?

    另外,“(此时单增序列{an}已经超过si了,因此也不可能收敛到它)”好像说的不准确,应该是si一定不在区间(ai, bi)中。

    回复:确实有问题,已经改了

  • nani

    如果是[0,1],A必胜策略是“第一次就选1”?

    回复:如果S是[0,1],那无论极限是什么都会落在这个里面,A必胜
    还有,A和B第一次取数的区间应该是开的,写错了,已经改了

  • bear

    康托集.
    希望M能写个哥德尔证明的介绍…

  • nani

    谢谢M67。现在看来,这个证明奇特而完美。这应该是一个重大的成果吧。

  • dragon

    无穷真奇妙……

  • 山顶拟诗

    B的排序策略是不可能必胜的。”证明实数区间不可数的新方法”一文的论证是错误的。
      证明:
      因为A可以拥有必胜策略:只要A每步都选一个合法的无理数,A就必胜。
      A将选取了一个无理数的递增数列,B将选取了一个实数的递减数列,即
      步序    A的选取数      极限值        B的选取数
      第1步   (无理数)                (有理数或无理数)
      第2步    (无理数)               (有理数或无理数)
      第3步    (无理数)              (有理数或无理数)
      ……       ……               ……
      第i步    (无理数)           (有理数或无理数)
      第i+1步    (无理数)         (有理数或无理数)
      ……        ……          ……
      ……        ……     c    ……

      B对A说:“你的序列的极限c是无理数,我赢了。”
      A反问B说:“那么我的数列中你任取一数(都是无理数)它与c(如果c是无理数)间都将包含有有理数,我的数列的极限怎么可能会是无理数呢?”
      B只好说:“你赢了,我确实找不出必胜策略。”
      证毕。

      即使让B先开始选数,A的必胜策略仍然有效,网友们可自己分析。

      无理数也是不可数集,如果A和B约定一个[0,1]的子集S 是[0,1]中的全体无理数,A也可有必胜的策略。
      证明:
      因为A可以拥有必胜策略:只要A每步都选一个合法的有理数,A就必胜。
      A将选取了一个有理数的递增数列,B将选取了一个实数的递减数列,即
      步序    A的先取数      极限值        B的选取数
      第1步   (有理数)                (有理数或无理数)
      第2步    (有理数)               (有理数或无理数)
      第3步    (有理数)              (有理数或无理数)
      ……       ……               ……
      第i步    (有理数)           (有理数或无理数)
      第i+1步    (有理数)         (有理数或无理数)
      ……        ……          ……
      ……        ……     c    ……

      B对A说:“你的序列的极限c是有理数,我赢了。”
      A反问B说:“那么我的数列中你任取一数(都是有理数)它与c(如果c是有理数)间都将包含有无理数,我的数列的极限怎么可能会是有理数呢?”
      B只好说:“你赢了,我确实找不出必胜策略。”
      证毕。

      即使让B先开始选数,A的必胜策略仍然有效,网友们可自己分析。

      这是说明有理数与无理数等势的一个非常好的例子。

  • 山顶拟诗

      如果A和B把约定的博弈选数区间扩展为实数域,并约定一个实数域的子集S 是实数域中的全体自然数,那么,B会有必胜的策略。
      因为自然数集是可数集,因此,B的排序策略是可以必胜的。
      证明:
      设第1步A与B选取的数分别为a1与b1,那么,接下来的博弈选数将在(a1,b1)内进行了。
      在(a1,b1)内只有INT(b1-a1)个自然数,在接下来的INT(b1-a1)步内,B如果有合法的自然数可选就选自然数,如果第i步没有自然数可选了,说明博弈的区间已限在了(ai,bi)且INT(bi)=INT(ai),(ai,bi)内已无自然数了,那么,A就不可能把数列极限收敛于自然数了,B必胜。
      证毕。

      还有让B更快必胜的方法,如果A选a1,那么B第1步可选[a1 + INT(a1 +1)] / 2 .

  • gnaggnoyil

    Orz Matrix67 大牛。
    这个证明让我想起了一个定理.

  • 山顶拟诗

    楼主新年好!这个证明让你想起了一个什么定理?

  • 游客甲

    1)由于这个游戏永远不可能结束,所以,A,B均无“必胜”策略
    2)由于任两实数间有无穷多有理数,所以,B的策略也不成其为一个策略;即——无法构造一个区间套指向一个无有理数的小邻域。

  • mathiq

    这不就是对角化过程换个马甲吗

  • eqwrwq

    康托尔 对角化证明 是一个 悖论 不正确

  • Jia

    “这个证明方法很巧妙,假设你把实数区间[0,1]里的所有数按照某种顺序排列起来,那么我总能找到至少一个0到1之间的实数不在你的列表里” 我对着书看了半小时 读了你这里的一句话恍然大悟啊 Thanks a lot dude! Your blog is awesome!!

  • Jia

    “这个证明方法很巧妙,假设你把实数区间[0,1]里的所有数按照某种顺序排列起来,那么我总能找到至少一个0到1之间的实数不在你的列表里” 我对着书看了半小时 读了你这里的一句话恍然大悟啊 Thanks a lot dude! Your blog is awesome!!

  • spk

    很遗憾这不是什么新方法
    只是康托尔最初证明(早于对角线方法)的一种的变形

  • 执着的人

    那个山顶拟诗的很装b么。楼主的新证明没有大问题,只不过对于判读集s的范围使得这个游戏进行困难很大,对一些情况如s=【0.5,1】,若a先选0.5以上的数,结果不言而欲。当然,对于一个可数集而言,就没有问题了。所以用作证明可以,实际游戏则不会那么简单了。

  • ehem

    不理解为什么一定有极限,如果A和B事先约定只在(0,a)U(b,1)内取值,还有极限吗?或者说这对证明没有影响吗?

    • ehem

      本来以为是可以取值的集合逐渐缩小成一个点,原来是an有极限啊,迷了-_-

  • www.tongbao418.com

    现实是此岸,成功是彼岸,中间隔着湍急的河流,兴趣便是河上的桥,只要行动就可以通过。

  • 放屁有益健康

    极限实际上是属于潜无穷的范畴,而康托尔是实无穷,根本是偷换概念!

  • anonymous

    漂亮漂亮

  • zhanpin

    山顶拟诗,你的两个A反问B中就有误。无理数序列的极限不一定是无理数,有理数的极限也不一定是有理数。考虑函数y=1/x,由于是连续的,那么一定存在无理数序列它的极限为有理数0,如{1/根2,1/根3,…,1/根p,…}p为素数。同理,考虑函数y=1/x+1/pi,由于是连续的,那么一定存在有理数序列它的极限为无理数1/pi,(很难举例但一定存在)。

  • zhanpin

    游客甲
    1)虽然游戏不可能结束,但这并不能证明“必胜”无法被证明。
    2)B的策略一句话总结是:走别人的路,让别人无路可走。
    假设A数列的极限为事先约定可数集中的si,那么B至多会在第i步取这个数,
    根据极限的定义在si的任意领域内都要存在A数列中的数,
    而B下一步会取si+1,或者si+1已不合法,在合法区间内任取一数x。
    那么在si的领域[si+1,si]或[x,si]中肯定不存在A数列的数,矛盾,假设错误。
    所以正是因为游戏会无休止的做下去,才能证明B的必胜策略。

  • 放屁有益健康

    matrix67介绍的这个证明是无效的,因为存在偷换概念的问题。
    “Baker发现,如果S集为可数集的话,B肯定有必胜策略。如果S集可数,那么B就可以把S集里的数排列成一个序列s1, s2, s3, … 。B的目标就是让序列{an}的极限不等于S集里的任一个数。”注意:这里意味着S集是[0,1]的一个真子集!这是前提条件.
    但是最后,”有趣的事情来了。假如A和B约定好的S集就是整个实数区间[0,1],那么B显然不可能获胜;但如果[0,1]是可数集的话,B是有必胜策略的。”注意:这里S集就是整个实数区间[0,1],而不是[0,1]的一个真子集了!

  • 放屁有益健康

    为了避免误解,上面所说的“前提条件”改为必要条件。

发表评论

  ×  7  =  28