宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

五十年前的登月文字遊戲,被發現存在一個數學Bug

2024年06月26日 首頁 » 其他

五十年前的登月文字遊戲,被發現存在一個數學Bug


如果只關心登月的真偽,這樣的故事就不會發生。

1969年7月20日,阿波羅11號載人航天計劃的成功,代表了人類探索的腳步首次踏足了月球的土地。

我們暫時先拋開最近漫長且無休止的、關於人類登月事件真實性的相關爭論,把時間撥回到50年前。

1969年,美國一位17歲的高中生Jim Storer和其他人一樣,通過電視直播見證了這一歷史性的瞬間。

五十年前的登月文字遊戲,被發現存在一個數學Bug


而且幾乎可以肯定的是,這位高中生當時一定沒有想過去質疑這件事的真實性,因為深受啟發的他隨後利用當時流行的PDP-8電腦和FOCAL匯編語言設計出了人類歷史上的第一款登月遊戲《月球登陸器》(Lunar Lander)。

當然,雖說是「遊戲」,但《月球登陸器》和如今我們所理解的遊戲還是有很大區別,比如它既沒有畫面也沒有聲音:

五十年前的登月文字遊戲,被發現存在一個數學Bug

《月球登陸器》遊戲畫面

在60到70年代,由於當時的電腦沒有圖形界面,所以誕生了不少只使用代碼和文字來呈現的遊戲作品。

《月球登陸器》雖然出自高中生之手,但它以文字的形式精確模擬了飛行器登陸月球時需要進行的操作。作為玩家,你需要同時考慮飛船高度、速度、引力、燃料量等多個因素,才能控制飛船在月球上平穩著陸。

以當時的眼光看,這款遊戲題材和操作模式都非常新穎,後續也曾在不同類型的電腦和平台上出現過復刻和模仿者,甚至在1979年,著名的雅達利公司還以它為概念設計了帶有圖形的街機版本,獲得了更大的成功。當然,這些都是後話了。

五十年前的登月文字遊戲,被發現存在一個數學Bug

1979年的雅達利街機版

之所以要介紹這款老遊戲,是因為最近一位來自麻省理工學院的博士後研究員,意外發現了在《月球登陸器》中存在了55年,一直都沒有人注意到的物理Bug。

曾擔任過軟體工程師、AI研究員的Martin C. Martin最近在利用這款遊戲研究飛行器著陸時的最佳燃料使用方案時,發現《月球登陸器》在源代碼中使用的物理計算公式,少了一個關鍵性的「除以二」。

雖然《月球登陸器》只是款遊戲,雖然作者當時只是高中生,但它在設計飛行器的著陸軌道時,使用的卻是相當嚴謹複雜的數學公式,其中就包括了被視為現代空間飛行器基礎原理的「齊奧爾科夫斯基火箭方程」,完全參照了現實中飛行器著陸的原理設計。

這就使得玩家可以通過真實里的數學公式來計算遊戲的最優解,而當Martin參照現實中的著陸方案,經過一連串數學計算並將其在遊戲中付諸實踐時,卻突然發現本應顯示「完美著陸」的時機,結果卻變成了「無法著陸」。

於是抱著工程師的探求心態,Martin再次細緻地研究了遊戲所使用的公式和代碼,最後他發現儘管遊戲背後所涉及的知識非常專業,但作者還是在一個非常簡單的地方出現了失誤——在一個公式平方根內部的分母中少算了一個「2」。

五十年前的登月文字遊戲,被發現存在一個數學Bug


為什麼會有這樣的低級失誤?Martin猜想是因為60年代電腦的代數系統和計算尚未成熟,作者可能依舊需要在紙上用筆進行整個公式的推導,因此出現了基礎失誤。

儘管如此,Martin依舊驚訝於一個高中生能夠掌握如此複雜的火箭知識,隨後他聯繫到了遊戲的作者Jim Storer,如今已經是布蘭代斯大學電腦教授的Jim表示:

「在高中時期我就對微積分等概念非常感興趣,而父親當時是就一位物理學家,他幫助我推導出了這些數學公式。

Jim不會想到,當初僅僅是因為對登月感興趣而創作的簡單程序,會在之後的時間裡影響如此多的玩家;更不會想到因為這款遊戲,讓兩位科學的探尋者完成了一場跨越了55年的對話。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新