五十年前的登月文字游戏,被发现存在一个数学Bug

五十年前的登月文字游戏,被发现存在一个数学Bug

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

1969年,美国高中生Jim Storer设计了人类历史上的第一款登月游戏《月球登陆器》。最近,一位麻省理工学院的博士后研究员发现了这款游戏中存在的55年来没有被注意到的物理Bug。这个发现让两位科学家展开了一场跨越55年的对话。

🔎

延伸解读

一个“除以二”为何能隐藏55年

这个Bug并非显眼的程序错误,而是藏在平方根内部的分母中,少了一个“2”。由于游戏以文字模拟飞行,玩家很难直观察觉公式偏差,只有像Martin那样用现实物理公式反推最优解时,才会发现“完美着陆”变成“无法着陆”。这说明在缺乏图形反馈的早期程序中,数学层面的细微错误可能长期不被发现。

高中生如何写出严谨的火箭公式

Jim Storer当时只是17岁高中生,却让游戏用上了齐奥尔科夫斯基火箭方程等现实原理。他本人对微积分感兴趣,身为物理学家的父亲帮助推导了复杂公式。这既解释了游戏为何能经得起物理推敲,也说明Bug更可能来自手工推导中的基础失误,而非作者缺乏知识。

从文字游戏到雅达利街机:影响如何扩散

《月球登陆器》最初没有画面和声音,只靠代码与文字呈现,但题材和操作模式在当时很新颖,后来被不同平台复刻模仿。1979年雅达利还以它为概念推出带图形的街机版并取得更大成功。这说明一个简单但核心的交互创意,可以跨越平台和媒介持续演化。

Bug背后:早期计算条件的限制

Martin猜想,这个错误可能源于60年代计算机代数系统与计算能力尚未成熟,作者仍需在纸上手工推导整个公式。这提醒我们,评价早期程序不能脱离当时的技术条件。一个今天看来低级的失误,放在那个年代,反而映衬出作者能掌握并实现复杂火箭数学的难得。

❓

Q&A

《月球登陆器》游戏的设计者是谁?

游戏的设计者是美国高中生Jim Storer。

《月球登陆器》游戏的主要玩法是什么?

玩家需要考虑飞船高度、速度、引力和燃料等因素,以实现平稳着陆。

最近发现的《月球登陆器》中的Bug是什么?

发现的Bug是源代码中缺少一个关键性的“除以二”,导致计算错误。

这个Bug是如何被发现的?

麻省理工学院的博士后研究员Martin C. Martin在研究最佳燃料使用方案时发现了这个Bug。

Jim Storer在设计游戏时受到了什么影响?

Jim Storer在高中时期对微积分感兴趣,并在父亲的帮助下推导出复杂的数学公式。

《月球登陆器》对后来的游戏有什么影响?

这款游戏影响了许多玩家,并促成了后续的复刻和模仿,甚至在1979年被雅达利公司改编为街机版本。

🏷️

标签

➡️

继续阅读