文 | HW君
1. 只会削土豆的机器
「让机器做数学计算」这个想法在巴贝奇的脑海里久久不能散去,于是他开始尝试去实现它。
但是这并不是一个容易的事情,所以需要先从一个简单的地方开始着手。
巴贝奇从「差分运算」中看到了潜力,因为「有限差分方法」已经被数学家们研究了近百年,它可以将高阶计算简化为单纯的加法,并且很容易程序化。
这样的一种可以进行差分运算的机器,就叫做「差分机」。
当然,这样讲解真的太不直观了,差分机到底是用来干什么的呢?
巴贝奇所设计的差分机可以用来求解「一元多次方程式」的值。
而「差分运算」主要将这个过程中一些复杂的乘方变成简单的加减法,因为机械齿轮结构最适合做加减法。
巴贝奇忽悠了英国财政大臣资助他研发差分机,他曾许诺「数表将变得如同马铃薯一样便宜」,财政部后来批准了他一笔一千五百英镑的拨款。
但是差分机的研发在黄铜和铸铁的世界里进展缓慢。
为了生产出精度足够高的部件,巴贝奇不得不先建造一个机械工厂,生产钢铁和车床。
在动工了十年后,巴贝奇的机器有0.61米高,有六根轮轴和数十个数轮,可以进行六位数的运算,已经可以用来做计算演示。
但只能进行六位数的运算,使得巴贝奇的机器更像是一台昂贵的数学玩具,而非一个能够真正为人们提供计算结果的强大机器。
再过了一个十年后,图纸上机器的规模已经到了4.53立方米,重15吨,有25000个零件,光把图纸铺平开来就已经有37平方米。
此时巴贝奇和朋友陷入了各种各样的争执,机器的研发进度也停滞不前。
最后,英国政府在耗费了数十年和一万七千英镑后,对巴贝奇失去了信任,中止了这个项目。
对此,巴贝奇对英国政府抱怨不已:
如果你对他说,有一台机器能削土豆,他会宣称这不可能。
而如果你当面用机器削给他看,他又会宣称这玩意儿没用,因为它不能切菠萝。
2. Difference Engine
差分机是怎么样的呢?
它是一种非常精密的机械设备。
伦敦科学博物馆的差分机
密密麻麻的数轮
设置要计算的式子
转动手柄,机器开始计算
(在巴贝奇的构想中会由蒸汽来当动力)
计算结果将在白色纸带上打印出来
(所以今天我们学编程时,输出结果的函数名是「print」)
巴贝奇费劲一生心血制造出这样的一台机器,只是为了能够自动生成一些对数表。
但差分机远远做不到这一点,它只能用来求解一些简单的一元多次方程。
3. 注定失败的机械计算机
我们现在回看差分机,它是一个构思超前的机器。
因为构思超前,以至于注定是无法在巴贝奇的那个年代被实现。
巴贝奇制作的差分机,如果要达到实用的程度,那么它的计算速度就要快,否则就不如人工手算。
但是机械齿轮的转动速度不可能一直提高,齿轮带动的进位杆的传动也需要时间。
物理定律导致了这样的一种计算机运算速度有一个非常低的天花板。
这一切的难题需要等到后来半导体技术成熟、电子计算机出现,才能打破这个运算速度的瓶颈。
电子在电路中行进的速度远远比齿轮转动的速度要快。
后世电子计算机的设计者们,回过头来研究巴贝奇的机器,会有一种历史的错位感。
巴贝奇设计机器的初衷,是为了自动生成一些数表;
但今日计算机的发展,却直接导致了数表被废弃。
而在打磨了许多年「只能算一元多次方程」的差分机后,巴贝奇开始构思一种可以计算所有问题的机器,也就是一种通用计算机。
巴贝奇将这台机器称为「分析机」,启发他灵感的是雅卡尔提花机,一种当时新研发出来的织布机。
但这台「分析机」永远只存在于巴贝奇的构思和手稿之中,从未被实现出来。
巴贝奇知道自己这辈子实现这种机器是没有指望的,但他会好奇未来的人们将会如何利用他的远见。
按他的猜测,至少还要再过半个世纪,才会有人再次尝试制作一台通用计算机器。
在巴贝奇去世前几年,他曾对一个朋友说,他愿意放弃剩下不管多少可活的时日,只愿能在五个世纪后的未来生活三天。
事实上要过一个多世纪,这项工作必要的基础科研技术才准备就绪。
1936年,艾伦·图灵提出了他的一个通用计算机模型,也就是后来著名的「图灵机」。
那时候,波澜壮阔的电气时代已然拉开巨幕。
巴贝奇的机械计算机,作为蒸汽时代的杰作,从此静静地躺在博物馆,成为人们瞻仰那个时代的信物。
(本章节完,尽请期待下一节)
By HW君 @ 2020-02-27