前陣子,近地小行星追蹤計畫(NEAT)發現一顆彗星正迅速接近地球,在精確計算軌道之後,依據杜林危險指數劃分為紅色的第九級(「確定撞擊、區域性毀滅」)。這顆事後被稱為「迦梨」的彗星立刻成為全球媒體的注目焦點,而美國政府下令太空總署執行防衛計畫,以載有核彈頭的火箭成功使彗星軌道偏離。直徑七百公尺的彗星從距離地球兩萬公里處擦身而過,拖曳在後的彗尾佈滿整個夜空,如同一面遮住繁星的薄紗,在太陽風的吹拂下朦朧飄揚。
「迦梨」的現身無疑是人類歷史上的重大事件,代表人類科學文明的力量已經超出地球之外而足以影響在虛空中遵循重力定律恆常運行的其他天體。但,只有少數人知道,她原本可能會以另一個名字留存在歷史上,且代表的意義截然不同。
時間回溯到兩個月前。
接到一紙語焉不詳的公文,我連夜搭乘對號列車前往西北省份的首府,向指定的單位報到,再轉乘交通車開進一望無盡的黃沙裡。車上的乘客來自國內各地,包括學者、工程師、技術工人,大家寒暄一陣,對於此行的目的眾說紛紜,還有人開玩笑說:搞不好是把異議人士誘到荒野來坑殺(當然車上沒人承認自己是異議人士)。抵達目的地時,發現被召集的人相當地多,而且至少不是勞改營:不遠處那些金屬玩意可不是燃料槽和火箭發射台?看來是座航天研發基地,設備出乎意料地先進。
隔天人似乎都到齊了,基地的領導集合我們發表談話。簡單地說,十天前我國位於一處寒僻高原上的天文台發現有顆彗星即將撞擊地球,撞擊地點估計是東半球一塊面積寬廣的沖積平原的西緣,在某座歷史古都的旁邊;換句話說,恰好在我國國土的正中央。因此政府臨時召集航天領域的專家組成研發團隊,冀望設計出一艘搭載核彈的火箭,藉以改變彗星的軌道。
能獲選指派參加這項任務,至少代表我們在公家單位中是上級看得上眼的優良份子,自是與有榮焉。然而令人費解的是:為何要將這精英研發團隊安置在鳥不生蛋的荒漠中間?另外還有一個疑問則是……
很快有個年輕人舉手發問:我們是否要和其他航天技術的先進國家合作,共同解決這場危難?他的語調篤定得擺明是個暗樁,不過也罷,反正在座的人大概都有類似的疑惑。
「我們為何要向那些『所謂的』航天先進國家求助?難道我們不也是航天先進國家嗎?」領導的語氣慷慨激昂,不但絲毫沒有國難當頭的擔憂,眼眸中倒閃爍著野心的光芒。「憑我國航天發展數十年來累積的經驗技術,竟還不能保衛自己的土地人民,反倒要仰賴洋人的同情施捨嗎?攔截遠在天外的彗星絕不是簡單的事情,但今日在此聚集的是全國最優秀的人才,只要大家齊心努力,不僅是要拯救千千萬萬的人民,更是要在人類史上率先改變天體運行軌道,為國家民族開創永恆的榮耀!」
原來如此。說穿了,就是打算以國族的名義行面子之爭。為了在全球拔得頭籌,這彗星來襲的消息自然不能走漏,否則美國一定會像好萊塢電影裡描寫的那樣搶著扮演世界救星的角色。據說首先發現彗星的天文台已經被軍隊層層封鎖,而我們則是被圈養在荒冷沙漠的正中央,與外界的聯繫全部受到監控,滴水不漏。
說來真可笑~~這顆彗星還遠在天邊,只因為落點在國土境內,就已經被當成國有財產了。不過也罷,反正我們這些小人物無權置喙,阻止彗星撞擊這任務本身總不是件壞事,我們做自己該做的事情就好。
領導最後宣佈的事才真叫人受不了。他說,凡計劃都該有個稱呼,慧星禍國殃民,他決定給她起名叫「妲己」,整個計劃則定名為「周武計劃」。
「妲己」?「禍國殃民」?我想彗星如果有靈性的話,恐怕也不想一頭撞碎在地球表面上吧。此外「周武計劃」聽起來像是在搞革命,品味實在有夠古板。如果讓我來取的話,嗯,當然是「封神計劃」囉!熟悉東洋漫畫的人應該知道我的意思。
總之計劃就此展開。身為一個編程員,我的工作是撰寫程式來模擬彗星的運行軌道,並計算受到外力衝擊後的可能變化。運算過程必須非常精確~~比如在考慮重力影響時,全太陽系的所有行星都必須包含在內~~資料不足的部份則代以描述機率的方程式。最後得出的結果是由多重機率交疊而成的複變函數,直接呈現的話大概只有數學家看得懂,不過與另一個描述地球運行的模組連結之後,呈現方式變得非常直覺:撞擊地球的機率是多少?最可能的撞擊地點在哪裡?時間又是何時?所得的結果可作為火箭的設計、以及指揮階層決策的參考。
模擬程式負荷的運算量相當龐大。計劃預定採用「核彈拍擊法」來改變彗星軌道,但根據目前的觀察資料尚無法確定彗星的組成結構,如果爆炸的威力太強,搞不好會把彗星炸成一堆巨大碎塊,想再逐一攔截是幾乎不可能啦。因此我們計劃發射至少三枚火箭,以相對微弱的爆炸,分次逐步使彗星偏離軌道。
最大的問題是:沒人知道核彈在太空中爆炸的效果如何~~這世上還沒人實驗過。我們的模擬程式必須排列組合出各種可能性,隨著火箭一枚枚發射欄截,再逐次刪選校正。
雖然程式所需的運算極其複雜,但我們編程員的工作十分無趣。運算所用到的公式自有各領域的專家負責:彈道專家、機率專家、固態物理專家、近地天體分析與追蹤專家(這種專家恐怕幾百年才派上一次用場!)……他們提供的公式印出來厚厚一疊,再由我們用程式語言將之原封不動地重述一遍~~這裡說「我們」,沒錯,我和另兩個編程員分在同一組,每一段程式碼都要經過三人交互審核。嚴謹的軟體開發流程理應如此,但另外兩人的編程水準實在有待加強。畢竟,他們連我在輸出模組裡開了個「後門」都看不出來。
這後門倒也不是什麼大不了的玩意。它會將所有運算的結果暗中複製一份,存放在工作站檔案系統的偏僻角落。領導下令模擬結果不得公開,避免「影響大家的鬥志」,以致於連撰寫程式的我都不知道模擬的結果會是什麼。但編程員總是想知道自己的程式運作的好不好嘛~~至少哪天閒來無事,還可以把資料調出來欣賞一番。
這段期間偶而有機會觀賞到天文台拍攝的彗星影像。其中一張放大影像裡,彗星凹凸的表面光影分明,周圍散開的彗髮中有數條顯著明亮的氣流,不知怎地看起來還真像是隻白色的九尾狐狸。仔細想想,彗星預測的撞擊地點恰好也和古代王朝的都城十分接近,或許「妲己」這名字還真出乎意料地貼切呢。
幾天後,模擬程式大致完成,頓時清閒下來。圈在這荒涼基地裡還真沒有其他消遣,只好瀏覽模擬結果打發時間。剛開始的測試數據雜亂無章,但很快地妲己撞擊地球的結果逐步減少,直到維持著一個固定的、不尋常的比例:她撞擊地球的次數,大約是避開地球次數的三分之一。
或許我真是太閒了才會去查看撞擊點的經緯度,然而我身為一個編程員,不知怎地對於數據中出現的不尋常規律總是十分敏感。那些撞擊地點的經緯度都相當接近,而且和根據現有觀察所預測的位置有頗大差距。一時興起,我上網查閱全球地圖,想瞧瞧到底是哪些地方要遭殃。
當我發現那些經緯度都集中在北美大陸時,背脊頓時一陣發涼。
記得卡爾.沙根曾經寫過:除非真有必要,否則應避免發展使近地天體偏離軌道的科技。因為這種能拯救地球的科技也同樣能當作戰爭武器。很顯然的,有人將模擬器四分之一的資源用於測試讓妲己偏轉後直接撞到美國去。而若再多發揮一點想像力的話,撞擊地點似乎是瞄準黃石公園~~記得以前看探索頻道介紹過,黃石公園的地底下是個超大型的岩漿庫。我腦海中閃過在電玩中常看到的朝汽油桶開槍的畫面……
這樣的數據代表什麼意義?為什麼有人要做這種模擬測試?我所能想到的解釋有三種:一是有一群喜歡做春秋大夢的無聊傢伙把模擬系統當成遊戲機;二是基地裡藏有恐怖份子想伺機以彗星來進行恐怖攻擊;第三種可能則是……我實在不願如此猜測,但確實有這種可能性:我所參與的攔截妲己計劃只是個幌子,真正的目標就是要拿她來當成一個大規模毀滅性武器!
那麼,我知道了,又能怎麼辦?如果真的有人意圖拿彗星當武器,我能阻止他們嗎?
從現實層面來看,彗星攻擊的實行可能性不高。發射火箭上太空是瞞不了人的,而假若我國發射的火箭拍了妲己一下,結果她掉到美國,難道能解釋成是一場意外嗎?恐怕會立刻招致核子報復吧。只是……如果是思想極端的恐怖份子,搞不好他們的目的正是期待兩敗俱傷?
或許我應該向上級報告……但我要如何解釋是怎麼拿到這些數據的?更何況,說不定我的頂頭上司也是陰謀份子的一員,向他報告難保不會變成自投羅網。
我也可以考慮透過網路將「有個彗星正在接近地球」的情報散播出去。只要幾個簡單的座標,應該很快就會有熱心人士自動去確認,然後總會有哪個國家採取正確的措施吧!只是啊,此刻處在重重監視的荒漠中央,想送個消息出去卻不留下足跡是不可能的事……如果只是為了別人閒來無事打發時間的遊戲而當上烈士,從此在這個國家裡被貼上標籤,豈不是太不值得了。
……然而,我並不想放任不管。這是我寫的模擬程式,是我的世界,運作其中的規則由我決定。調皮的小子想在裡頭吵吵鬧鬧地玩戰爭遊戲?思想偏激的恐怖份子把這兒當作大量殺人的練習場?那也得看我同不同意。身為編程員,在塑造邏輯與操弄數字之間,我還有近乎惡作劇的幻術、魔法可以施展呢!
第二天,模擬結果出現了令人詫異的變化~~準確地說,攔截組(我自己給定的稱呼)的改變並不明顯,撞擊組(同樣是我自己取的)卻會赫然發現估計命中範圍的半徑較先前大了十倍。如果原先他們將標的放置在黃石公園周邊,現在的打擊範圍北起阿拉斯加、南抵委內瑞拉,簡單來說就是準頭變差了,很難確定最終的撞擊點是哪裡。還不到中午,演算部的主任便打電話來,詢問我今個兒一早提交的那段程式碼用意為何。
平心而論,我所做的修改一點都不合理:任何真實環境的模擬,無論再怎麼精確都一定會有誤差,我們所能做的是將誤差縮小到合理範圍之內,實在無法避免的誤差則代之以機率函式。原本模擬程式的精準度絕對符合理論上的需求,我卻刻意把機率函式的參數放大~~具體來說,如果我們將妲己被核彈拍擊後可能的行進區間看作是一個圓錐的話,我相當於是將圓錐的頂角擴大,使底部在地球表面上畫出一個更大的圓。
這樣的修正對攔截組影響不大,因為他們本來的目標是要讓妲己的路線離地球越遠越好,但對於撞擊組來說麻煩可就大了。我不知道演算部的主任是基於什麼理由來詢問我(搞不好只是針對每次改變的例行確認),但我給了他一番關於進位誤差是如何隨著運算而擴大的即興演說,接著再具體地解釋:既然計畫的目的是要避免妲己碰撞地球,那我們應該要儘量考慮最壞的情況,測試出來的結果才會比較保險。
主任暫且同意了我的說詞。當然,在此之前我提交的程式碼也曾接受兩個共事的編程員檢視過,但正如我所料的,憑他們的本領看不透我真正的目的。
想想還真是弔詭。模擬程式的目的,是要客觀地再現萬物依循自然原理的運行過程,如今卻順從我的意志,因我的意圖而產生歪曲的結果。當然這份歪曲無法改變真實物理宇宙的運作,但對於根據模擬結果來評估決策的使用者來說,卻能改變他們觀察所得的情報,促使他們作出不同的決策。
換言之,這不正是一種「幻術」?
編程員是一種很奇妙的職業。我們操弄著旁人難以理解的程式語言(咒語),操縱廣泛滲透到日常生活各個角落的電腦裝置,令它們發揮其微薄的智能(精靈)來滿足人類的需求。是的,平凡人使用財務系統管帳,以郵件軟體收發信件,無聊時還可玩玩電腦遊戲消遣一下,但你們真的信任編程員嗎?或許我們正暗中盜取帳戶的零頭、在信件傳遞的途中刪除敏感字詞、即使一場小遊戲也要利用不公平的隨機函數擺你一道。透過鍵盤敲出密密麻麻程式碼的我們,和揮舞魔杖口誦神秘語言的古代巫師,到底有什麼差別?
接下來幾天,我又陸續進行了三次類似的更新,原則上都是對攔截組沒影響,但都足以將撞擊組搞得人仰馬翻。演算部主任越來越不耐煩,我相信如果有可能的話他一定會將我撤換掉,但基地裡能動用的編程員人數有限,而在計劃後期更換成員必定會對進度造成衝擊,妲己卻是不等人的。他沒有太多選擇。
但或許是我自己得意忘形了。真沒想到,竟是編程員的專業特質讓我自己栽了筋斗。
有天早上,我發現模擬數據中出現一系列從未見過的模式,稍微察看了一下內容就立刻知道大事不妙。這是一個全新的模擬環境:一個廣闊虛空的宇宙中孤懸著一個半徑10000公里「地球」,面臨一個以秒速100公里接近的、正巧1公里半徑的正圓形小行星……總之,這個宇宙裡所有你看得到的量度都是前頭一個1帶著一排0,徹底的理想世界,大概什麼物理現象都可以直接用紙筆推算。
我頓時懊惱起來:當初幹嘛沒事把程式設計得彈性十足、徹底的模組化,而且所有的參數都可以動態設定?如果我把環境設定參數都寫死在程式裡面,他們決不可能在不重寫程式的情況下塑造出另一個理想環境出來,這場幻術也就沒那麼容易破解了~~哎,果然是魔法數字(magic number,意指直接寫進程式碼中的常數,對編程員來說是不專業的手法,應當避免)用得越多,程式才會越神秘、越像魔法啊!
兩小時之後,主任面色不善地找我到測試部去,當面和幾個彈道專家「對質」。我只好一路裝蒜,先是堅持自己的程式不可能出差錯,然後在那單純得令人發噱的理想宇宙中,親眼目睹我的模擬程式算出的結果和理論估計值相比有多麼荒謬。在一番裝模作樣地檢視自己熟得不能再熟的源碼之後,不得不低聲下氣地承認「有幾個函數的設定並不是很恰當」。
除了我被羞辱一頓、信用掃地之外,主任自然也是臉上無光,和我共事的另外兩個編程員則臭著臉,一副倒霉被牽連到的模樣
算了,如果他們想拿彗星去砸美國,就隨他們去。反正我已經盡力阻止過了,總不能要我拿命去搏吧?
然而隔天早上全球媒體的新聞都被妲己的彩色影像給佔據了~~那清晰的影像來自位於智利的甚大望遠鏡(VLT),比起我們手中的版本要精細漂亮得多。根據近地小行星追蹤計畫公佈的數據,她撞擊地球的機率是完美的壹,撞擊地點則和我們的計算結果相差無幾。位於「毀滅區域」內的各省份立刻陷入一片恐慌,民眾搶著舉家逃離,火車飛機一票難求,大小城市的機能都陷入癱瘓。國內新聞趕緊播出官方聲明,宣稱截至目前的消息都是不負責任的猜測,要求民眾不要隨國外媒體的炒作起舞,但粉飾太平的謊言顯然沒什麼人相信。
如同好萊塢電影一樣,整個事件的主導權很快就落到美國政府手上。美國總統在消息曝光的十八小時後召開記者會,宣布他已授權NASA執行「格利亞計畫」,發射一艘載有核彈頭的火箭前去攔截彗星~~能夠反應如此迅速,八成是NASA內部平日就準備好各種應變計畫了。他還故作謙虛地說,雖然他對於NASA的防禦計畫很有信心,但為了以防萬一,希望其他國家也能進行後備計畫。
我國基於直接受害國的立場,順利地搶得了第一順位的候補,但這實在是沒什麼好得意的吧。美國總統的自謙之詞害我們在沙漠裡多悶了十天,直到確定妲己的軌道已經偏離為止。在這段期間裡,模擬演算還是持續在進行,但我沒再看到任何直衝美國的結果。
至今,我仍然不知道做這些模擬的人是什麼目的:到底只是無聊的樂子、某種暗中進行的恐怖陰謀、或整個攔截計畫就真的只是掩護攻擊計劃的幌子?
不過這些都已經無所謂了,唯一令人遺憾的只有……只有名字。「格利亞計劃」的稱呼來自亞瑟.克拉克的科幻小說《The Hammer of God》,書中敘述一個命名為「迦梨」(Kali,印度的黑女神)的小行星衝向地球,而「格利亞」(Goliath)是載運核彈前往攔截的火箭名稱。因為有這個典故,NASA多次在公開場合稱呼計畫目標為迦梨~~雖然這不合乎彗星命名的慣例,國際天文聯會也堅持必須是他們正式決議的名字才算數,但大眾媒體已經習慣這個名字了,想必日後也會在歷史上佔有一席之地吧。
但是對我來說,這顆跨越千萬里虛空直奔地球、但最終無緣相會;拖著妖異炫麗的尾巴,以光彩奪目之姿吸引全人類仰首瞻望的彗星,她的名字就是妲己。