Reader's Club

Home Category

牛津通识读本:数学(中文版) [2]

By Root 1066 0
,我们需要作出一些选择。

如果盒中只有一个分子,那么规则可以很明显:分子以恒定速度运动,撞到盒子壁面时就反弹出去。要将这种模型推广到包含N个分子的情形(N是个较大的数),最简单的办法就是假设分子都遵从这样的运动规则,分子之间绝对没有相互作用。为了启动这样的N分子模型,我们要选择分子(或者说,表示它们的那些点)的初始位置及初始速度。随机选择是一种好办法,因为我们可以预期,在任意时刻,真实气体中的分子都在空间中弥散着,运动方向也各式各样。

图3 气体的二维模型

要说清在立方体中随机取一个点并不困难,随机的运动方向也不复杂,但如何随机地选择速率就有些含混了,因为速率可以取从0到无穷大的任意值。为了避免这个困难,我们可以作一个从物理角度看似不太可信的假设,让所有分子的速度大小都相同,仅仅让初始位置和方向能够随机选取。图3就表示了这个模型的一个二维情形。

N个分子完全相互独立运动的假设毫无疑问是过度简化的。比方说,利用这个模型,我们就不可能理解,为什么当温度足够低时气体会液化:当你把模型中的各点运动速率降低,得到的还是相同的模型,无非跑得慢一些而已。不过这个模型还是能够解释真实气体的许多行为。例如,想象盒子被慢慢压缩的情形。分子仍然会继续以相同速率运动,但由于盒子变小,分子撞击壁面更加频繁,可供撞击的壁面面积也变小了。由于这两个缘故,单位面积的壁面每秒钟被撞击次数就增多了。这些撞击正是气体压强的来源,于是我们可以总结出,气体体积减小时,气体压强很可能增大——正如实际观测所证实的那样。类似的论证还可以解释,为什么气体温度升高而体积不变时,压强会增大。要推算出压强、温度与体积之间的数值关系也并不困难。

上述模型大致上就是伯努利所提出的模型。麦克斯韦的成就之一就是发现了一个优美的理论,来解决如何更逼真地选择初始速率的问题。为了理解这一点,让我们放弃分子间没有相互作用的假设。作为替代,我们假定分子会时不时地相互碰撞,就像台球一样。碰撞之后,它们就以另外的速率、向另外的方向,在遵守能量守恒和动量守恒定律的前提下随机弹开。当然,既然我们用没有体积的点来表示分子,那么就很难看出它们要如何碰撞。不过,这个麻烦在理论中恰可以作为一个非正式的论据,说明分子运动速度及方向具有某种随机性。麦克斯韦就这种随机性的本质作了两个非常合理的假定:其一,分子运动的随机性不随时间而改变;其二,这个随机性在不同方向上没有区别。大体来讲,第二条假设意味着,选取d1和d2两个方向及某个速率s,那么粒子以速率s沿着d1方向运动的概率和以速率s沿着d2方向运动的概率是相同的。不可思议的是,这样的两个假设就足以恰好决定分子运动速度的分布形式,即意味着,如果我们想要随机选取速度,就只有一种自然的方式。(它们应当服从正态分布。这种分布产生了著名的“钟形曲线”。这种曲线在各种各样的场合下经常出现,既出现在数学中也出现在实验中。)

一旦选定了速度,我们就可以再次忘掉分子间的相互作用。结果表明,这种作了一点改进的模型依然存在着原始模型中的许多瑕疵。为了进一步修正,我们只能再把分子间的相互作用考虑进来。但是结果发现,即使是非常简单的相互作用粒子模型,其行为也极其复杂,会引发极为难解,事实上多数都未能解决的数学问题。

大脑和计算机的模型化

计算机同样也可以看作由相互作用的各部分集合而成;很大程度上由于这个原因,理论计算机科学中同样有很多悬而未决的重要问题。其中有如下这样一个例子,我们可能愿意去尝试解答。假设某人选取了两个素数p和q,将它们相乘后的结果pq告诉你。你只要逐个取素数,看看它是否能够整除pq,即可以找出p和q。例如,给出91,你很快就能发现它不是2,3,5的倍数,继而发现它恰好等于7×13。

然而,当p和q非常大时——比方说都是200位的素数,那么这一试错过程会耗时极长,即使借助于强力计算机也是如此。(如果你想要体会一下这种困难,不妨尝试找出6901的两个素因子,以及280 123的。)可另一方面,似乎也不难感觉到,说不定这个问题存在着更聪明的解决办法,基于它就可以编制出一种快速运转的计算机程序。如果能找到这种好办法,我们就能破解作为大部分现代安全系统之基石的密码,包括在互联网上以及其他各处——破解这些密码的难点就在大整数的因子分解。反之,如果能够表明由pq计算出p和q的这种快速有效的方法不存在的话,我们则能够安心。不幸的是,虽然计算机总在不断地让我们惊叹它的各种能力,对于它们做不了的,我们却几乎毫无了解。

在思考这个问题之前,我们必须找到一种方法来数学化地表示计算机,并且要尽可能简单。图4所显示的就是一种极好的方法。它包含许多层节点,连结点和点之间的线段称作“边”。进入到最顶层的称作“输入”,这是一条0和1的序列,从最底层出来的叫作“输出”,是另一条0和1的序列。节点分为三种,分别称作“与门”、“或门”和“非门”。每一个门都从连结上层的边中接收到一些0和1。它再根据所接收到的数码来自己发出一些0和1,所遵循的简单规则如下:与门当接收到的输入全部为1时,输出1,否则输出0;或门当接收到的输入全部为0时,输出0,否则输出1;非门只允许一条边连结上层,它在接收到1时输出0,接收到0时输出1。

一系列门由边连接起来就称作一条电路,我上面所描述的模型正是关于计算的电路模型。使用“计算”一词是恰如其分的,因为我们可以把电路看作这样一种装置,它拥有一条0和1的序列,继而按某些预定规则将其变换为另一条序列,如果电路很大,变换规则可能会很复杂。这也正是计算机所进行的工作,只不过它们能够把这些序列翻译成我们能够理解的格式,诸如高级程序设计语言、视窗系统、图标等等。实际上,存在一种比较简单的办法(仅从理论的角度而言——在实践上操作将是个噩梦),能将任意计算机程序转换为一条按完全相同的规则变换01序列的电路。而且,计算机程序的重要特征恰在其对应电路中有着非常类似的对照物。

图4 一个简单的计算机程序

具体而言,电路中的节点数量正对应于计算机程序运转所花费的时间。因此,如果我们能够表明,按某种方式来变换01序列需要庞大的电路,那么也就说明这种变换方式所需要的计算机程序运转时间很长。我们使用电路模型而非直接分析计算机,其优势就在于,从数学的角度来看电路更简单也更自然,考虑起来更容易一些。

对电路模型进行一点小小的修改,我们就能得到大脑的一种有用的模型。这种模型不再使用01序列,而是使用0和1之间的任意值来表示强度各异的信号。所有的门,即对应于神经元或者脑细胞,也有所不同,但其行为还是很简单的。每个门从其他的门接收到一些信号,如果这些信号的总强度——对应数字的总和——足够大,门就在某个特定的强度水平上输出它自己的信号,否则不输出。这对应于神经元所作的是否“激发”的决策。

似乎很难相信这个模型能够捕捉大脑全部的复杂性,但这部分缘于我并没有提到应当有多少个门以及如何安排这些门。一个典型的人类大脑包含大约1000亿个神经元,它们以非常复杂的方式排列着;以我们当前对大脑的认识,还不可能谈及太多——至少在精微的细节方面不可能说清。不过,上述模型提供了一种有益的理论框架,供我们思考大脑可能是如何工作的,也使我们能够模拟某些类似于大脑运行的行为。

地图染色与时间表制定

设想你正在绘制一幅地图,地图上分成了若干区域,你希望为这些区域选取颜色。你可能想选用尽可能少的颜色,但同时还希望避免任意两块相邻区域使用相同的颜色。再设想你正在安排大学课程的时间表。课程有很多门,但可供安排的总时间段有限,所以会有某些门课程时间冲突。哪些学生选了哪些课程已经登记在列,你希望尽可能合理安排,仅当两门课程没有学生同时选择时才可以时间冲突。

这两个问题看似截然不同,但一种合理的模型能够说明,从数学的观点来看它们其实是一样的。在这两个问题中,都需要给一些对象(国家、课程)赋予一些属性(颜色、时间)。对象中有某些两两组合(相邻的国家,不能冲突的课程)是不能相容的,也就是说它们不能被赋予相同的属性。在这两个问题中,我们其实并不关心具体的对象是什么、要赋予的属性是什么,所以我们也可以仅用点来表示它们。为了表示那些不相容的成对的点,我们可以将它们用线段连结起来。这样一组边和边连结起来的点的集合,就是“图”这种数学结构。图5给出了一个简单的例子。通常称图中的点为顶点,称线段为边。

图5 10个顶点和15条边组成的图

一旦我们将问题用这种形式表示出来,我们在两个例子中的任务就统一为:将顶点分成尽可能少的几组,使得每组中不包含由同一条边相连的两顶点。(图5所表示的图可以分成三组,但不可能分成两组。)这也就说明了使模型尽可能简化的另一个充足理由:如果幸运的话,同样的模型可以用来一次性研究很多不同的现象。

“抽象”一词的不同含义

在设计模型的时候,我们会忽视所考察的现象中尽可能多的信息,从中仅仅抽象出那些对理解其行为必不可少的特征。在上述我所讨论的例子中,石头被简化为一个点,一国的全部人口被简化为一个数,大脑被简化为遵循一些简单数学规则的门的网络,分子间相互作用被简化到根本不存在。结果得到的数学结构就是具体情形在模型化之后的抽象表示。

我们说数学是一个抽象的领域,这包含两层含义:一来它从问题中抽象出重要特征,二来它所处理的对象不是具体的、有形的。在下一章,我们将讨论数学抽象的第三层,也是更深层的含义,前面的例子其实已经让我们对此有所了解。图是一种具有可塑性的模型,可以用在多种场合。但当我们研究图时,完全不需要考虑它的这些具体用途:点究竟表示地区、课程还是别的完全不同的东西,这并不重要。研究图的理论工作者可以完全抛弃现实世界,进入到纯粹抽象的王国之中。

第二章 数与抽象

抽象方法

几年前,《泰晤士报文学增刊》的一篇评论在开篇写到:

已知0×0=0以及1×1=1,就可以得

Return Main Page Previous Page Next Page

®Reader's Club