说道计算机的鼻祖,我们能记起的大多数是诞生于1946年的ENIAC。但是他只能说是电子计算机的鼻祖,现代计算机的雏形还能再往前推100年——他就是“差分机”。
这件事得从1770年说起。一个叫沃尔夫冈·肯佩伦的发明家制造了一台可以下象棋的机器,命名为“土耳其人”。他声称这台机器可以打败所有人。皇后的一个顾问不信,亲自去试验,结果真输了棋局。
“土耳其人”引起了巨大的轰动。肯佩伦带着他周游全欧洲,打败了包括富兰克林(发明避雷针的那位)和腓特烈大帝的一大批最强大的人物。
1819年,英国工程师查尔斯·巴贝奇听说了这个消息,也去比划比划,结果连输了两局。巴贝奇怀疑这台机器并不智能,里面或许还有人在帮着机器下棋。那可是1819年,想造出“阿尔法狗”(2018年诞生的围棋计算机,能全自动的和人下棋,而且每次都能赢你,可以自己学习棋路)那样的自动机器根本就不可能。于是巴贝奇打开柜子查看——
柜子开了,钟摆背后,里面果真躲着一个人。那个棋盘下面有能吸住棋子的磁铁,里面的人通过磁铁来得到棋子的位置,然后像玩提线木偶那样,用手上拉的线和滑轮系统来让木傀儡移动,再通过操控下面的杠杆来手动挪棋。里面的椅子有滑轨,在开门时可以往里滑动,避免被发现。
肯佩伦的恶作剧使巴贝奇有了一个新奇的想法:可以用机器代替人来进行运算吗?
这个想法在1820年左右开始完善。当时人们工作、研究、出海、算账……都需要用到一类东西,叫做数表。他们要面对庞大的数据,就通过查数表来得到对应的数据。这个东西在当时人人都在用,但制作它很麻烦。
你要制作数表,首先要确定计算这些数据要用哪些公式,这一步通常由数学家完成。监督员要组织计算,监督结果的最终汇总;计算员负责计算。你至少需要一个帮手,因为为了减低错误率,你需要计算完再找一个人对答案,这样才能确定谁对谁错。但这样仍然存在问题,毕竟每个人都会算错数的。就连当时著名的《英国航海天文历》都存在数据错误,曾经有不止一个人报告过,说他们因为这部数表里错误的数据导致搁浅或者偏航。
巴贝奇也在编辑数表的人员名单之内。当时他就想,如果用一部机器来代替人来算这些就好了。在1820年,巴贝奇和好友赫谢尔在校对数表时不断发现错误,这个想法又冒了出来。“如果这些能用机器计算就好了。”巴贝奇说。赫谢尔认为这完全可能,于是大力支持。
于是巴贝奇开始付诸实践。他设想了一种机器,可以代替人来运算。那么这台机器长什么样,又怎么制造出来的?下期继续:差分机的雏形