分享

解读“无穷”的概念,为何我们很难理解无限的世界?

 天选小丑 2022-01-19

庄子有句话:“夏虫不可以语于冰者,笃于时也。”意思是说,夏天的虫子无法理解冰雪,因为它受限于生命的时长,等不到能看见冰雪的冬天就死了。其实在庄子看来,人的生命也很短暂,认识也很有限。

他说,“吾生也有涯,而知也无涯”,就是说用短暂、有限的生命,无法理解无限世界的事情。不过,人具有想象力,虽然看不到无限的事物,却能想象出一些规律,并且通过逻辑保留合理的。有些人做到了这一点,他们的认知水平就比其他人高出好几个层次了。

我们今天就从无穷大说起,说说认知升级的事情。

说起无穷大,先要说大数字。小孩子们常常爱比谁说的数大,比如一个孩子说出一百,另外一个孩子说一万。别的孩子就问了,一万有多大?他说,一万就是一百个一百,别人只好不说话认输了,因为孩子们还是有基本逻辑的,知道一百个一百显然比一个一百多。

当然,过两天输了的孩子跑去问家长,从家长那里知道一亿这个数,他就又赢回来了。这时,如果输了的孩子脑瓜子灵,会说出两亿来翻盘,最后孩子们就不断地喊,一亿亿亿亿亿亿……,最后是肺活量最大、气最长的那个孩子赢。

接下来,可能又有孩子要回去问家长,家长告诉他无穷大,这回,他就可以回去秒杀那些一亿亿亿……不断喊下去的孩子们了。但是你要问他无穷大是多少,谁也说不出来,大家只是接受了这个虚构的概念,认为它是世界上最大的数。

下面我就问大家一个问题,无穷大是一个数吗?它可以被看成是数轴的终点吗?它在数学上和某个具体的大数一样大吗?

这些很基本的问题很多人在大学里学完高等数学其实也没有一个明确的概念,在绝大多数人心目中,无穷大是一个数,只是它比你能想象的数更大而已,人们依然会用理解一些具体数字的方式去理解它。无穷大的世界和我们日常认知的世界完全不一样。

当然人类也是直到现代才开始正确认识无穷大。1924年,大数学家希尔伯特讲了一个旅馆悖论,让人们重新认识无穷大的哲学意义。他的悖论是这样讲的:

假如一个酒店有很多房间,每一个都住满了客人,这时你去酒店问,还能给我安排一间房子吗?老板一定说:“对不起,所有的房间都住上了客人,没有办法安排您了。”

但是,如果你去一家拥有无限多个房间的旅馆,情况可能就不同了。虽然所有的房间均已客满,但是老板还是能帮你“挤出”一间空房的。

他只要这样做就可以了。他对服务生讲,将原先在1号房间的客人安排到2号房间,将2号房间原有的客人安排到3号房间,以此类推,这样空出来的1号房间就可以给你了。类似的,如果来了十个、八个人,也可以用这种方式安排进“已经满客”的酒店。

接下来的问题来了,既然每个房间都被现有的客人占据了,怎么又能挤下新的客人?因此我们说这是悖论。但是“旅馆悖论”其实并不是真正意义上的数学悖论,它仅仅是与我们直觉相悖而已。

在我们的直觉中,每个房间都被占据,和无法再增加客人是等同的,但这只是在有限的世界里的等价性,在无穷大的世界里,数学中的很多逻辑都需要重新梳理一遍。我们在有限的世界里得到的很多结论,放到无穷大的世界里,需要重新检验,有些能够成立,有些不成立。

比如说在有限的世界里,一个数加上1就不等于这个数了,因为比它大1,但是在无穷大的世界里,这条结论就不成立,因为无穷大加1还是无穷大,就如酒店悖论中的那个酒店一样,再增加一个客人,酒店依然能够容纳得下。

事实上,在希尔伯特做完那个报告后,全世界数学家不得不回去把所有的数学结论在无穷大的世界里又推导了一遍,看看有没有什么漏洞。

在上面的问题中,客满的、无穷多房间的旅馆,不仅可以增加有限个客人,甚至能增加无限个新客人。那么当无限的客人来住店,怎么办呢?具体的做法是这样的,我们让原来住在第1间的客人搬到第2间,第2间的客人搬到第4间,第3间的搬到第6间。

总之,就是让第N间的客人搬到第2N间即可。这样就腾出无数间的客房安排新的客人了。我们知道一万乘以2是两万,不等于原来的一万,但是无穷大乘以2还是无穷大,并不是两个无穷大。

无限集合的性质与有限集合的性质并不相同。对于拥有有限个房间的旅馆,其偶数号房间的数量显然总是小于其房间总数的,比如1万个房间,偶数号的有5000间,不等于总数。然而,在无穷房间的旅馆中,偶数号房间的数量与总房间数量是相同的。

类似的,我们可以证明一条长5厘米的线段上的点,和一条长10厘米线段上的点是“一样多”的。这个证明也很简单:

在图中,下面的线段长度是10厘米,上面的是5厘米。我们将它们平行放置,于是将它们两端相连(虚线),就会交会到一个点S处。接下来,对于10厘米长线上的任意一个点X,我们将X和S相连,就和5厘米短线有一个交点,我们假设为Y,这就说明长线上的任意点,在短线上都可以找到对应点。

因此,短线上的点应该不少于长线上的点。这样,在无穷大的世界里,我们可以认为10厘米线段上点的数量和它的一个子集,即5厘米线段上的点是“相同的”。当然更准确的说法是基数相同。

接下来就有一个问题了,不同类型的无穷大,比如整数的个数,或者10厘米长线段上的点数,它们彼此能比较么?答案是可以,这里面的细节我们省略了,在这里我直接给大家答案,就是一根很短的线段上的点数,要比所有的有理数数量都多,前者的基数比后者大。我知道这可能有点颠覆你的直觉,但这个结论是正确无疑的。

讲到这里,我们一开始的问题,“无穷大是不是一个特别特别大的数?”现在有答案了。它不是一个具体的数,它和万亿、googol数(10的一百次方)等等都不同。它不是静态的,而是动态的,它反映一种趋势,一种无限增加的趋势。在增大的过程中,有的无穷大会比其它的更大,因为它变化的趋势比其他的无穷大更快。

对于无穷大的概念,关键要理解它是动态变化到了最终尽头的描述。事实上,无穷大(和以后要介绍的无穷小)代表着一种新的科学世界观,就是让我们关注动态变化的趋势,特别是发展变化延伸到远方之后的情况。

上面这些关于无穷大世界的特点可能有些颠覆你的认知,这并不是说你原先的认知有问题,而是说我们在有限世界里得到的认知太狭隘了,相比浩瀚的宇宙和人类的知识体系,我们的认知可能就如同夏天的虫子,受限于我们的生活环境。这也是我们比较接受通识教育的原因,因为这样可以让我们以最快速度走出我们认知的围墙。

当然,有些同学可能会问,了解无穷大世界这件事情有什么现实的意义?它的意义很多,这里我不妨说一个具体的例子。

我在《谷歌方法论》中讲到了关于计算机算法的衡量标准。假如有三个完全相同功能的算法,A、B和C。

  • 算法A要进行100,000*N次运算;
  • 算法B要进行N^2次运算;
  • 算法C要进行N次运算。

请问哪种算法好?

很多人会说,当然是算法C好,至于A和B,要看情况。如果N<100,000,那么算法B更好,否则就是算法A好。比如,N是20万时,A方案就相当于10万*20万,B方案相当于20万*20万,可见B是很大的。

但是,在计算机科学中,衡量两个算法的复杂度时,只会考虑这两种算法在处理近乎无穷大的问题上的表现,也就是N趋近于无穷大的情况。因为它关心的是,当问题越来越复杂后,每一种算法所需要消耗的计算机资源(比如计算时间)的增长趋势。这样一来,算法B显然是计算量最大的。

至于两个算法在复杂度上只差出常数倍,在计算机科学上就认为它们是等价的。对计算机科学家们来讲,将一个算法从平方的复杂度降低到线性,这是捡西瓜的事情,将一个线性复杂度的算法的计算量再减小几倍,这是捡芝麻的事情。

要点总结:

首先,我们通过希尔伯特旅馆悖论,说明生活在有限世界的人,其实很难想象无穷大的世界,在那里,很多规律和有限世界是不同的。比如说,在无穷大的世界里,部分可以完全和整体等价。

因此,我们不能以有限的认知,去理解无限的事物,也不能把那些从很少的经验中得到的结论,放大后用于更大的场景。比如,有些人受过一两次骗,就得到一个结论,世界上没有一个是好人。这就陷入了以有限的经验理解无限事物的误区。

接下来我们强调了,无穷大并非是一个静态的、具体的大数字,而是一个动态的、不断扩大的变化趋势,希望通过这个概念,提示大家能够以动态的眼光看待世界。

至于无穷大这个概念的现实意义,我们举了计算机科学中算法复杂度的例子,量级的差异,要比同量级之间几倍的差异重要得多。我们在工作中,要优先考虑量级的提高,而不是捡芝麻的事情。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多