跳过正文
  1. 文章/

差分机的传奇:巴贝奇与未完成的梦想

sun.ao
作者
sun.ao
我是 sun.ao,一名热爱技术的程序员,专注于 AI 和数智化领域。
目录
计算机前世今生 - 这篇文章属于一个选集。
§ : 本文

1821年的一个夜晚,英国剑桥。

两个年轻人正在翻阅一本天文表。书里密密麻麻的数字,是航海家们用来定位的依据。

“这些表格里全是错误!“其中一个年轻人愤怒地说,“这些错误会让船只迷航,甚至沉没!”

他的朋友问:“那怎么办?”

年轻人沉默了一会儿,然后说:“我要造一台机器,让它自动计算这些表格,永远不出错。”

这个年轻人叫查尔斯·巴贝奇。他即将设计出人类历史上最复杂的机械装置——差分机

巴贝奇是谁?
#

巴贝奇1791年出生于伦敦,父亲是个富有的银行家。

他从小就对机械着迷。有一次,他问妈妈:“为什么玩具不能自己动?“妈妈说:“因为它们没有生命。“巴贝奇不满意这个答案,他开始研究钟表,想弄清楚齿轮是怎么让指针自己转动的。

后来他进入剑桥大学学习数学。但他发现,英国的数学教育远落后于欧洲大陆。于是他和几个朋友一起,把欧洲最新的数学著作翻译成英文,推动英国数学的复兴。

但巴贝奇最关心的,是另一个问题:如何让计算变得准确和高效?

在那个年代,所有的数学表格——对数表、天文表、保险精算表——都是由"人类计算机"手工计算的。这些人每天坐在桌前,用纸和笔进行枯燥的运算。

人总会犯错。一个数字的错误,可能导致船只触礁、保险索赔出错、科学实验失败。

巴贝奇想:如果机器能代替人计算,就不会出错了。

差分机:用齿轮计算多项式
#

巴贝奇设计的机器叫差分机(Difference Engine),因为它使用一种叫"差分法"的数学技巧。

什么是差分法?

假设你要计算一个多项式,比如 f(x) = x² + x + 41。当x=0,1,2,3…时:

x f(x) 一阶差分 二阶差分
0 41 - -
1 43 2 -
2 47 4 2
3 53 6 2
4 61 8 2

注意到了吗?二阶差分是恒定的(都是2)。这意味着,只要知道前两项,就可以用简单的加法算出后面所有项!

43 + 4 = 47,47 + 6 = 53,53 + 8 = 61…

不需要乘法,只需要加法!而机械装置最擅长做的,就是加法。

巴贝奇的差分机,就是用齿轮来实现这种计算。每个齿轮代表一个数字,转动齿轮就相当于做加法。机器可以自动计算多项式的值,然后把结果打印在纸上。

政府的资助与困境
#

1823年,巴贝奇向英国政府申请资助。政府被他的计划打动,拨给了他1500英镑——这在当时是一笔巨款。

巴贝奇开始制造差分机。但他很快遇到了问题。

第一个问题是技术。 当时的加工精度不够高,巴贝奇需要的齿轮精度达到了千分之一英寸。他不得不自己设计新的机床,培训新的工人。

第二个问题是成本。 机器越来越复杂,预算不断超支。到1833年,他已经花了17000英镑,但只完成了机器的七分之一。

第三个问题是巴贝奇自己。 他是个完美主义者,不断修改设计。每当他想到一个更好的方案,就会推翻之前的工作。

政府终于失去了耐心。1842年,财政大臣宣布停止资助:“我们不知道这台机器能不能完成,也不知道它值不值这个钱。”

巴贝奇愤怒地写道:“政府浪费了17000英镑,而我浪费了20年的生命。”

分析机:超越时代的构想
#

但巴贝奇没有放弃。事实上,他的脑子里已经有了更疯狂的想法。

在制造差分机的过程中,他意识到:为什么只造一台只能算多项式的机器?为什么不造一台能算任何东西的机器?

这就是**分析机(Analytical Engine)**的构想。

分析机的设计,包含了现代计算机的所有核心概念:

  • 存储(Store):用来存储数据,相当于现在的内存
  • 运算(Mill):用来进行运算,相当于现在的CPU
  • 输入/输出:用穿孔卡片输入程序,用打印机输出结果
  • 分支与循环:机器可以根据条件选择不同的执行路径

这简直就是一台现代计算机! 只不过它用齿轮和蒸汽驱动,而不是电子和电力。

巴贝奇设计了超过200张图纸,3000多种零件。如果制造出来,这台机器会有一个小房间那么大。

但它从未被制造出来。

阿达·洛夫莱斯:第一位程序员
#

在巴贝奇最孤独的时候,有一个人理解了他的梦想。

她叫阿达·洛夫莱斯,是英国著名诗人拜伦的女儿。

阿达从小对数学着迷。1833年,17岁的她见到了巴贝奇和他的差分机模型,立刻被迷住了。她后来写道:“这台机器的运作,就像纺织机编织花朵一样,编织着代数模式。”

1843年,阿达为一篇关于分析机的文章写了注释。在这些注释中,她写出了人类历史上第一个计算机程序——一个计算伯努利数的算法。

更重要的是,她预见到了计算机的无限可能:“这台机器可以编写音乐、绘制图形、做任何能用符号表达的事情。”

她被称为世界上第一位程序员。虽然她从未见到分析机运行,但她的思想跨越了时代。

悲剧的结局
#

巴贝奇于1871年去世,享年79岁。

他一生都在设计机器,却从未看到它们完成。他的葬礼只有几个人参加,报纸称他为"一个失败的发明家”。

但历史证明,巴贝奇没有失败。他只是太超前了。

他的设计理念领先了世界100年。

1985年,伦敦科学博物馆根据巴贝奇的图纸,制造出了一台完整的差分机。它有8000个零件,重5吨,长3.4米——但它真的能工作!

这台机器计算出的结果,精确到小数点后31位。巴贝奇的设计是正确的,只是他那个时代的加工技术达不到要求。

为什么巴贝奇失败了?
#

回顾巴贝奇的一生,我们可以看到几个关键问题:

第一,技术限制。 19世纪的机械加工精度,无法满足巴贝奇设计的复杂程度。

第二,资金问题。 巴贝奇不断修改设计,导致成本失控。如果他能先完成一个简化版本,也许结果会不同。

第三,性格因素。 巴贝奇是个完美主义者,也是个糟糕的项目管理者。他无法在"完美"和"完成"之间做出妥协。

但巴贝奇最大的贡献,不是他造出的机器,而是他提出的问题:机器能不能思考?机器能不能编程?机器能不能做任何能用符号表达的事情?

这些问题的答案,在100年后被另一个人给出了。

他叫艾伦·图灵

他的故事,我们明天继续。


今日知识点
#

差分法(Method of Differences) 一种计算多项式的技巧。对于多项式函数,如果反复计算相邻项的差,最终会得到常数。这意味着可以用简单的加法代替复杂的乘法来计算多项式的值。巴贝奇的差分机就是基于这个原理。

穿孔卡片(Punched Card) 一种用孔洞来存储信息的方式。卡片上不同位置的孔代表不同的数据或指令。巴贝奇的分析机计划用穿孔卡片来输入程序。后来,IBM把穿孔卡片用于早期的电子计算机,成为20世纪中叶最主要的数据存储介质。


思考题
#

  1. 巴贝奇的分析机包含了现代计算机的所有核心概念。你能说出它们分别对应现代计算机的哪些部件吗?
  2. 如果巴贝奇生活在今天,你觉得他会成为什么样的人?程序员?创业者?还是大学教授?

明天预告:艾伦·图灵与图灵机——一个数学家如何定义"计算”,为计算机奠定理论基础。

计算机前世今生 - 这篇文章属于一个选集。
§ : 本文

相关文章