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”输出效果。