1 发明背景

1.1 克劳德·香农的多元兴趣

1.1.1 从信息论到玩具发明

克劳德·香农以信息论奠基人闻名于世,但他同时是一位热衷于机械玩具、杂耍和奇怪发明的工程师。在发表《通信的数学理论》后,香农便将大量精力投入到“无用的发明”中,这些发明往往带有学术幽默与工程技艺的结合。THROBAC正是他这种跨界兴趣的典型产物。

1.1.2 香农的幽默与反叛气质

香农在其职业生涯中多次展现出对“严肃科学”的戏谑态度。他曾在贝尔实验室的走廊里骑独轮车,同时抛接多个球;他曾设计一台名为“读心机”的装置,实则只是简单的概率演示器。THROBAC的设计初衷并非为了解决实际计算问题,而是为了讽刺当时计算机界对“现代性”的盲目追求——用最古老、最不便的数字系统来执行最基本的运算,本身就是一种高级幽默。

1.2 罗马数字在现代计算的困境

1.2.1 罗马数字的表示与运算规则

罗马数字使用七种字母:I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000),遵循减法原则(如IV表示4)和加法原则(如VI表示6)。其运算规则极其复杂:例如,加法需要逐位合并后重新分组(IIII需改为IV,VIV需改为X),减法需考虑借位时字母的拆分(如从X中减去V需先将X拆为VV)。这些规则使得罗马数字几乎不适合进行算术运算。

1.2.2 为何需要一台“倒退”的计算器

20世纪50年代初,电子计算机正从二进制逻辑中飞速发展。香农却反其道而行,制造一台基于罗马数字的机械计算器。这并非出于实际需求,而是为了展示:任何数字系统都可以通过逻辑电路实现运算,哪怕它极其低效。THROBAC的存在证明了“计算”这一抽象概念可以独立于进制和符号体系,从而强化了香农关于信息本质(符号与规则)的理论

2 设计原理

2.1 机械与继电器架构

2.1.1 拨轮数字设定机制

THROBAC的输入采用多组可旋转拨轮,每个拨轮对应一个数位(从个位I到千位M)。拨轮上刻有罗马数字字符,用户通过旋转拨轮设定当前位的数值。每组拨轮通过弹簧与继电器触点连接,当拨轮停在某个字符上时,对应数量的继电器被激活。

2.1.2 进位与借位处理(“V”与“X”的转换逻辑)

罗马数字的特殊进位规则需要专用逻辑电路。例如,当两个拨轮相加得到IIII时,继电器会触发一个“进位机构”,将四个I替换为一个IV(即4),并可能进一步触发向X的进位(IIII→IV,IV+VI→X)。借位操作更为复杂:当需要从X中减去V时,机械装置先将X拆为VV,再移除一个V。香农使用继电器和凸轮组合实现了这些转换规则。

2.2 运算算法

2.2.1 加法与减法的特殊规则

加法流程:将两个操作数各位分别通过拨轮输入,继电器逐位合并,然后依次处理“I群聚→IV”、“IV+VI→X”、“X+X→XX”等转换,最终结果在输出显示端呈现。减法流程类似,但需要从高位借位时,借位信号会触发放大镜式的机械拆分。

2.2.2 乘法与除法的近似实现

乘法采用重复加法的方式:例如计算III×IV,CHROBAC通过继电器计数III次加法(每次加IV)。除法则使用连减法:机械机构会记录减法的次数。由于罗马数字缺乏零概念,除法遇到非整除情况时,结果仅输出整数部分,余数丢弃。实际操作中,乘除法速度极慢,但逻辑完整。

3 操作方式与用户界面

3.1 输入装置

3.1.1 拨轮排列与读数方式

THROBAC前面板上有两行拨轮,每行四个(分别对应千、百、十、个位)。第一行用于输入第一个操作数,第二行输入第二个操作数。拨轮上按顺时针方向依次排列I、V、X、L、C、D、M,以及特殊的IV、IX等组合字符。用户转动拨轮使目标字符对准指针即可输入。

3.1.2 运算符选择旋钮

在拨轮左侧设有一个四档旋钮,分别标记为「+」「-」「×」「÷」。旋动至对应档位时,内部齿轮会连接不同的继电器组合,从而激活相应的运算逻辑。

3.2 输出显示

3.2.1 罗马数字数码管(或机械翻牌)

输出采用机械翻牌显示,每张翻牌上印有罗马数字。运算结果通过一组小电机驱动翻牌,使其依次切换显示逐位的字符。由于翻牌数量有限,结果显示的最大值为MMMCMXCIX(3999)。

3.2.2 错误与溢出提示

当运算结果超出3999或出现非法操作时,一个红色的“ERROR”翻牌会弹出。此外,如果减法导致负数,机器会输出“N”(表示“Nullum”,即零的近似概念,但罗马数字中本无零,香农以此作为幽默处理)。

3.3 实际使用体验

3.3.1 计算速度与精度

THROBAC完成一次加法约需3秒,乘法可能耗时20秒以上,且仅限于整数运算。其精度受限于机械公差和继电器寿命,偶尔会出现进位卡壳。香农曾演示计算XI×XIV,机器花了近半分钟显示出CLIV(154),而同期IBM 604电子计算器只需0.1秒。

3.3.2 对比同期电子计算器

与使用二进制、速度达毫秒级的计算设备相比,THROBAC几乎是“技术倒退”的极端案例。但香农指出,它的存在并非为了竞赛,而是为了论证“算法可以在任何符号系统上实现”这一理论命题。当时《贝尔实验室记录》的内部刊物称其为“计算史上最优雅的愚弄”。

4 历史意义与后续影响

4.1 在计算机发展史中的定位

4.1.1 作为早期奇特计算装置的代表

THROBAC与同期其他“怪诞计算机”(如纳皮尔骨牌、差分机变体)一起,构成了计算史中的“猎奇系列”。它证明了香农不仅关注信息论的严肃应用,也擅长以物理造物来表达数学思想。

4.1.2 对后世“非标准进制计算”的启发

THROBAC间接启发了后来对余数系统、冗余进制等非标准计数方式的研究。一些计算机教育者在讲授“进制无关性”时,会引用THROBAC作为经典案例。

4.2 文化符号与趣闻

4.2.1 “THROBAC”名称的由来

THROBAC是“Thrifty Roman Numeral Backward Computer”的缩写。香农解释“Thrifty”(节俭的)是指它用最少种类的数字符号(罗马数字共七种)完成了运算;“Backward”意指它逆历史潮流而动。全名读作“斯罗巴克”,令人联想到一种笨拙而可爱的机械生物。

4.2.2 香农在贝尔实验室展示时的轶事

1951年展示会上,香农首先用普通阿拉伯数字输入了“5+5”,机器平静地吐出“X”。接着他输入“X-X”,机器先显示“N”(零),然后香农打开机箱,里面隐藏的一条纸条弹出,上写“零是不存在的,但在我的机子里它叫N。”这一恶作剧让在场同事大笑。

5 现存实物与复原

5.1 原始机器的保存现状

5.1.1 博物馆收藏记录

THROBAC只有一台原始原型机。1972年,香农将其捐赠给麻省理工学院博物馆,编号为M-1972-0001。该机目前处于“展出但不运行”的状态,部分继电器因氧化已失效。

5.1.2 已丢失的原型机情况

据香农笔记记载,他曾制作过第二台“改进型”,加入了自动进位加速器和更美观的亚克力面板。该原型机于1960年借给一位友人后不知所踪,传闻被拆解用于修理电灯开关。至今未寻回。

5.2 现代复制与数字模拟

5.2.1 爱好者重建项目

2010年,英国计算机博物馆的志愿者团队根据公开图纸和照片,耗时两年建成了一台功能完整的THROBAC复制品。该复制品使用透明外壳,内部继电器和拨轮均可被视为演示教学工具。

5.2.2 在线模拟器简介

多个网站提供了THROBAC的JavaScript模拟器,用户可在网页上点击虚拟拨轮进行罗马数字运算。例如“Roman Calculator THROBAC”在线版由计算机历史学会维护,支持加减乘除并忠实模拟了溢出提示和“N”输出效果。