APP下载

电脑的史前时代

2015-01-26余风

大众科学 2014年12期
关键词:卡德差分对数

余风

如果把1946年世界上第一台电子计算机的出现,视为“计算机元年”的话,那么,此前的2000余年,可以称为计算机的“史前时代”。在这漫长的时光中,算筹、算盘、加法机、差分机等的出现,见证着人类追求精确快速计算的一次又一次尝试。

石头和绳子

美国小说家西德尼·谢尔顿的畅销小说《假如明天来临》中,巧舌如簧的骗子杰夫向人们兜售一种“袖珍计算机”,说它价格低廉、绝无故障、节约能源且10年内无需任何保养。当购买者打开包装盒后,却发现它其实就是中国的算盘。

实际上,算盘虽然不是计算机,却算得上是计算机的“祖先”--它是世界上最古老的计算工具之一。

比算盘更古老的计算工具,是石头和绳子。远古时期遗留下来的一些壁画显示,在文字尚未出现以前,人们常常用石头或绳子来计算捕获的猎物。《易经》中也说:“上古结绳而治,后世圣人易之以书契。”

据说,公元前514年,波斯王大流士在远征塞西亚时,给了他的指挥官们一根打了60个结的绳子,并夸口说,从出征的那天起,让他们每天解开绳子上的一个结,到解完最后一个结的那天,就能够凯旋而归。结果,这场战争打了两年也没能取胜。

从算筹到算盘

继石头和绳子之后,人们发明出一种更先进的计算工具--算筹。

算筹又称算子,起源于中国的商代,是一种十进制计算工具,通过移动一根根长短粗细相同的竹制、木制或骨制小棍子来进行计算。它不仅可以计数,而且能做加、减、乘、除等运算。南北朝时期的数学家祖冲之正是利用算筹,算出了圆周率小数点后的第6位,比法国数学家韦达的相同成就早了1100多年。

中国的十进位制算筹记数法是一个伟大且领先世界的创造--同一时期,古罗马只有数字系统(7个基本数字符号)却没有位值制;古玛雅人的位值制是20进位;古巴比伦人用的则是60进位。

继算筹之后,中国古代在计算工具领域的另一项重大发明是珠算盘。相传其雏形最早可追溯到公元前600年的春秋时期,据说当时已出现了“算板”:将10个算珠串成一组,一组组排列好放入框内,然后拨动算珠进行计算。

但珠算盘的最早文字记载,直到汉代才出现在徐岳的《数术记遗》一书中。明代时,珠算盘已经与现代算盘基本相同--有13根竖轴,每根上部有2颗珠子,下部有5颗珠子,中间以横梁隔开,通过“口诀”进行运算。由于珠算盘具有“随手拨珠便成答数”的优点,运算起来要比算筹快得多,因此很快就流行起来并传入日本、朝鲜、越南、泰国以及欧洲的一些国家,受到世界各地人们的喜爱。

格子算法与纳皮尔算筹

15世纪中叶,意大利数学家帕乔利在《算术、几何及比例性质摘要》一书中介绍的一种计算乘法的方式--格子算法。相传,这种方法最早记载在1150年成书的印度数学家婆什迦罗的《丽罗娃提》一书中,12世纪后广泛流传于阿拉伯地区,后传入欧洲并广为流行。

格子算法的原理,是通过加法操作来完成乘法计算。例如计算357×46时,先画一个矩形,把它分成3×2的小格,在小格边上依次写下乘数、被乘数的各位数字,再用对角线把小格一分为二,分别记录上述各位数字相应乘积的十位数与个位数,把这些乘积由右到左,沿斜线方向相加,相加满十时向前进一。这样,最后得到的结果便是:357×46=16422。

1612年,英国数学家纳皮尔根据格子算法的原理,将格子和数字刻在“筹”(长条竹片或木片)上,发明出纳皮尔算筹。两年后,他进一步提出对数的概念。此后,牛津大学的埃德蒙·甘特发明出一种使用单个对数刻度的计算尺。

“机械化”对数计算尺问世

1630年,英国牧师、数学家、乘法符号“×”的发明者奥特雷德发明出圆算尺,1632年,他组合两把甘特式计算尺,制造出世界上第一把“机械化”对数计算尺。

到了18世纪,这种计算尺逐渐被改良成圆柱型对数计算尺并成为工程师们的至爱。18世纪末,蒸汽机的发明者瓦特在对数计算尺的尺座上添置了一个滑标,用来贮存计算的中间结果。

对数计算尺不仅能做加、减、乘、除、乘方、开方运算,还能计算三角函数、指数函数和对数函数,因此一直被使用到20世纪70年代袖珍电子计算器问世为止。著名物理学家费米就曾经为他的学生李政道制作过一把两米长的计算尺,用来计算太阳中心温度,这大概是史上最长的计算尺了。

被历史埋没的契克卡德

17世纪,随着航海、天文学等的蓬勃发展,人们迫切需要新的计算工具和计算方式。据说,1623年,德国图宾根大学教授契克卡德曾为著名天文学家开普勒制作了两台机械计算机。这种计算机能做6位数的加减法,机器上部附加了一套圆柱型“纳皮尔算筹”,因此也能进行乘除运算。此外,它或许还设置了某种“溢出”响铃装置。

可惜,这两台计算机后来不知下落。直到300多年后的1960年,契克卡德家乡的人根据他当年手书的示意图仿制出这种计算机后,这位被历史埋没的计算机先驱才得以闻名于世。endprint

第一台机械计算机诞生

现在普遍认为,历史上第一台机械计算机是法国著名科学家布莱斯·帕斯卡发明的。

1639年,帕斯卡的父亲受命出任诺曼底省监察官,负责征收税款。年仅16岁的帕斯卡看着父亲费力地计算税率、税款,就萌发了要为父亲制作一台计算机的想法。此后,他先后做出2个不同的模型。

1642年,帕斯卡的第3个模型--加法器终于制作成功,这一年,他刚满19岁。

帕斯卡加法器是利用齿轮传动原理,通过手工操作来实现加、减运算的。其外壳用黄铜制作,机器内部装有一组轮子,每个轮子上刻着从0到9的10个数字。当两数相加时,先在轮子上拨出一个数,再在相应的轮子上转动出第二个数,最后就能自动得出两数之和。如果某一位上两个数字之和超过了10,加法机就会自动通过齿轮进位。

加法器的问世意义重大--它意味着人们可以利用机械工具来模拟人的思维活动。

受到加法器的启发,1673年,德国数学家莱布尼茨发明出一种更先进的乘法器。他在加法器的基础上增设了步进轮,可以连续重复地做加减法,然后通过转动手柄,将这种重复加减转变为乘除运算。

莱布尼茨还从中国“易图”(八卦)中得到启发,提出二进制也许更适合机械进行数学运算,从此奠定了现代计算机科学的理论基础。

可编程织布机和制表机问世

莱布尼茨乘法器问世半个世纪后,1725年,法国纺织机械师布乔提出“穿孔纸卡”的概念。1805年,法国纺织机械师杰卡德发明出可编程织布机,通过读取穿孔纸卡上的编码信息来自动控制织布机的编织图案。

受可编程织布机的启发,1888年,美国人口普查局的统计学家霍列瑞斯博士使用穿孔卡片成功制成一台机电式自动制表机。这种制表机在此后的历次美国人口普查中均获得巨大成功。值得一提的是,霍列瑞斯制表机第一次把数据转变成二进制信息。在此后的计算机系统里,用穿孔卡片输入数据的方法一直沿用到20世纪70年代。

杰卡德和霍列瑞斯分别开创了程序设计和数据处理的先河,这二者构成了后来计算机“软件”的雏形。

超越时代的巴贝奇差分机

杰卡德之后,英国数学家、天才发明家查尔斯·巴贝奇利用可编程织布机的原理,耗费10年潜心研究,终于在1822年发明出历史上第一台可编程计算机--差分机。

这台差分机由堆栈、控制器和运算器三部分组成,几乎是现代计算机的简化版本,它拥有1000个50位数的堆栈、以二进制码为基础的控制器和复杂的计算条件跳转结构。可处理3个不同的5位数,计算精度达到6位小数。

差分机的程序,是由数学家爱达·奥古斯塔(英国著名诗人拜伦的女儿)设计完成的。她先后编写了三角函数程序、级数相乘程序、伯努利函数程序等一大批沿用至今的数学算法代码。1981年,美国国防部将一种计算机语言命名为爱达语言,以纪念“世界上第一位软件工程师”。

后来,巴贝奇和爱达提出改良差分机的设想,希望使它能自动解算有100个变量的复杂算题,每个数可达25位,速度达到每秒钟运算1次。为此,巴贝奇提出了20种不同的设计方案,绘制了近2000张组装图和50000张零件图。

但是,巴贝奇和爱达的想法太过超前,由于制造工艺的限制,加之经费上的困难,他们付出一生的努力也没能实现这一设想。100多年后,伦敦科学博物馆按照巴贝奇的图纸,花了整整17年,终于在2002年成功仿制出这种改良版差分机。

马克1号问世

美国哈佛大学数学教授霍华得·艾肯在读过巴贝奇和爱达的笔记后,被他们的远见卓识所震惊,进而提出用机电而不是纯机械的方法来实现差分机。

1944年2月,在IBM公司的赞助下,艾肯成功研制出一台全自动化程序控制计算机--马克1号。

马克1号由开关、继电器、转轴以及离合器构成,借助电流进行运算。它装备了15万个元件和长达800公里的电线,重达31.5吨。其关键部件为3000个继电器,每个继电器上都有用弹簧支撑的小铁棒,通过电磁铁的吸引上下运动。吸合则接通电路,代表“1”;释放则断开电路,代表“0”。

马克1号可储存72组数据,每组数据有23位十进制数字,每分钟可进行200次以上的运算,每秒可运算3次加法或减法。计算一个乘法则需6秒,除法需15.3秒。此外,它甚至可以求解微分方程。

马克1号代表了机械计算机或电动计算机的顶尖水平,一经问世便被用来计算原子核裂变过程。之后,它又运行了15年,编出的数学用表人们至今还在使用。但它从投入运行的那一刻起,其实就已经过时了,因为此时,人类社会已经大踏步跨进了电子计算机时代。(责任编辑/清扬)endprint

猜你喜欢

卡德差分对数
一类分数阶q-差分方程正解的存在性与不存在性(英文)
要求乘客戴口罩,美国司机惨了
明晰底数间的区别,比较对数式的大小
比较底数不同的两个对数式大小的方法
一个求非线性差分方程所有多项式解的算法(英)
一类caputo分数阶差分方程依赖于参数的正解存在和不存在性
活用对数换底公式及推论
神奇的对数换底公式
基于差分隐私的数据匿名化隐私保护方法
不平衡的天平