- Story -
Chapter73_LastMission7-16.exe Fate and Fair, Battle of Colonels VII

  『PMlbIPcmOPrbclVRLcmNclIRsnPEPlbIRsmIRrbs

   mBNFRNcleq0TOIPDOBNFRKcleq0TONDOBNWElbPl

   bNcmKrbrbsmEDEDWNsmEDsmFNPlbNclIRsmKclIR

   rbclIRsmBNIFKgtNTNPcleq0smEEIFKeq0ORNeqK

   TNPcleq1smEEPcleqPlbNm1cmKm1rbpPlbNm1cmKrbsmEDs』

 

  卡琳卡的雙手飛快地在鍵盤上移動,反覆地閱讀螢幕上所顯示的字串,並藉由拆解、編譯的方式努力找出這串暗號的規律,在分秒必爭的時間中,卡琳卡連喘息的時間都不能浪費。

  「這些字串,究竟代表著什麼意思?」

  佛魯迪的雙眼快速掃過整組暗號,以領航員的運算速度對整串暗號進行整理,接著以初階的視覺歸納提出了自己的見解:

  「有大寫字母和小寫字母,似乎代表某種單字的縮寫!」

  卡琳卡稍稍思考一會,雙手再度飛躍起來:

  「既然如此,我們先將大寫字母和小寫字母分開來看!」

  一串經過空格分段後的字串很快顯示在螢幕上。

 

  PM lb IP cm OP rbcl VRL cm N cl IR sn PEP lb IR sm IR rbsm BNFRN cleq 0 TOIPDOBNFRK cleq 0 TONDOBNWE lb P lb N cm K rbrbsm EDEDWN sm ED sm FNP lb N cl IR sm K cl IR rbcl IR sm BNIFK gt NTNP cleq 0 sm EEIFK eq 0 ORN eq KTNP cleq 1 sm EEP cleq P lb N m 1 cm K m 1 rbp P lb N m 1 cm K rbsm ED st

 

  「在這些大寫字母中重複率最高的就是IR、BN和ED……」佛魯迪說道。

  「說到IR就會想到Integer、Irregular、International和Integrated,BN則是Billion、Boron和Begin,ED則是End、Euclidean……」卡琳卡忽然恍然大悟,「等等,這會不會是代表著PASCAL的保留字。」

  「PASCAL的……」佛魯迪沉思道,「你是指1970年由瑞士計算機科學家Niklaus Wirth所研發出來,以法國數學家Blaise Pascal為名的結構化程式語言?」

  「沒有錯!」卡琳卡的雙手繼續飛躍,雙眼一面跟隨著螢幕上的程式碼移動,一面說道,「Niklaus Wirth繼承ALGOL的優點所發展出來的PASCAL這種高階語言,除了擁有BNF和Top Down的特性外,更擁有Block Structure的特性。」

  「原來如此,構成Block Structure的BEGIN和END,就是這兩個保留字讓你聯想到以ALGOL為本的PASCAL!」佛魯迪不由得露出笑容,「雖然PASCAL的程式塊起頭與結尾皆以BEGIN和END包起來是個相當醒目的特點,但光憑這點特性也有可能是BASIC語系的程式語言,不是嗎?」

  「你說的沒錯,不過你忽略了一點!」卡琳卡說道,「那就是在這組暗號中包含了許多ALGOL和BASIC未使用的保留字,所以我才推斷這組暗號是以PASCAL的保留字所構成的程式。」

  語畢,卡琳卡的右手在Enter鍵一敲,一長串列表在螢幕上顯示出來,這正是PASCAL所使用的三十五個保留字。

 

AND

ARRAY

BEGIN

CASE

CONST

DIV

DO

DOWNTO

ELSE   END

FILE

FOR

FUNCTION

GOTO

IF

IN

LABEL

MOD NIL

NOT

OF

OR

PACKED

PROCEDURE

PROGRAM

RECORD

REPEAT        SET

THEN

TO

TYPE

UNTIL

VAR

WHILE

WITH

 

 

  卡琳卡的右眼瞄向螢幕上的計時器,時間只剩下八分鐘了,讓她不得不更加快腳步,她的雙手在鍵盤上移動的速度也更加快速。

  「將暗號中所有的大寫字母轉換成原來的保留字,非偶數位的字母當成是變數,IP、OP、IR和WE作為INPUT、OUTPUT、INTEGER和WHITE,將能轉換成這樣的形式……」

 

PROGRAM lb INPUT cm OUTPUT rbcl VAR L cm N cl INTEGER sn PROCEDURE P lb INTEGER sm INTEGER rbsm BEGIN FOR N cleq 0 TO INPUT P DO BEGIN FOR K cleq 0 TO N DO BEGIN WHITE lb P lb N cm K rbrbsm END END WHITELN sm END sm FUNCTION P lb N cl INTEGER sm K cl INTEGER rbcl INTEGER sm BEGIN IF K gt N THEN P cleq 0 sm ELSE IF K eq 0 OR N eq K THEN P cleq 1 sm ELSE P cleq P lb N m 1 cm K m 1 rbp P lb N m 1 cm K rbsm END st

 

  「這麼說來,小寫的字母應該就是代表著……」

  「你說的沒錯!」卡琳卡再度鍵入指令從網路下載一份符號英文單字對照表下來,「那應該是將符號英文單字化的縮寫。」

 

 

left bracket

right bracket

greater-than bracket

less-than bracket

colon

semicolon

comma

full stop

equa

plus

minus

(

)

:

;

,

.

=

+

 

 

  「如此一來,這組暗號的正文就呼之欲出了……」

  「嗯!」卡琳卡敲下鍵盤上最後一個鍵,「再整理一下格式將能轉變為暗號的原文。」

 

  PROGRAM (INPUT, OUTPUT);

  VAR L,N:INTEGER;

 

  PROCEDURE P(INTEGER;INTEGER);

  BEGIN

   FOR N:=0 TO INPUT DO

    BEGIN

     FOR K:=0 TO N DO

      BEGIN

       WHITE(P(N,K));

      END

    END

   WHITELN;

  END;

 

  FUNCTION P(N:INTEGER; K:INTEGER):INTEGER;

  BEGIN

   IF K > N THEN

    P := 0;

   ELSE IF K = 0 OR N = K THEN

    P := 1;

   ELSE

    P := P(N-1, K-1) + P(N – 1, K);

  END.

 

  「這就是……PASCAL程式的原文!」

  「嗯!」藉由餘光所看見的計數器,上面顯示的時間只剩五分鐘了,佛魯迪警告道,「我們的動作必須快一點,只剩四分鐘五十秒了!」

  卡琳卡再度將注意力集中在螢幕上從暗號反譯回來的程式碼。

  「……主程式藉由雙迴圈中所產生的P(N,K)呼叫遞迴副程式,副程式中當前兩項條件式都不成立時,遞迴式的呼叫函數將會把數值回傳至原函數中儲存……」

  她的雙手再度飛快移動起來,透過系統內建的編譯器將程式轉為執行檔後自動執行,並以手動方式定義輸入值,將程式執行結果顯示在螢幕上。

  「如果假設輸入值是10的話,那麼執行的結果將會是……」

 

  1

  1 1

  1 2 1

  1 3 3 1

  1 4 6 4 1

  1 5 10 10 5 1

  1 6 15 20 15 6 1

  1 7 21 35 35 21 7 1

  1 8 28 56 70 56 28 8 1

  1 9 36 84 126 126 84 36 9 1

 

  「這個是……」

  看到螢幕上的這幅由數字所排成的圖形,兩人同時喊出了唯一一個可能的答案。

  「帕斯卡三角形(Pascal Triangle)!」

  「原來如此!」看到這個景象,卡琳卡不禁發出了笑聲,「所謂『不斷重覆的遞迴』就是指這個嗎?以名為PASCAL的程式語言開始,再次回到名為PASCAL的三角形中,遞迴的關鍵在於PASCAL這個名詞,再加上名為PASCAL的母體電腦,看來這公司也滿幽默的。」

  「別感嘆了,卡琳卡!」佛魯迪無奈地催促道,「只剩三分鐘了!」

  「我知道!」

  共同交換彼此的視線後,卡琳卡迅速將兩人共同破解出來的密碼鍵入電腦中。

  從各方面的角度來考量,兩人得出的答案應該沒有錯誤,照理說是如此。

 

  但一個「PASSWORD ERROR」的視窗卻在密碼輸入後彈了出來。

  同時間,劇烈的搖晃與震耳欲聾的巨響讓卡琳卡從椅子上跳了起來。

  「怎、怎麼回事!」

  爆炸的狂風吞噬了卡布崗公司開發大樓的一樓前庭,將富有現代藝術感的拱門完全炸成了碎片。

 

  「發、發生什麼事情了!」

  透過監控中心的螢幕看見開發大樓前庭廣場慘不人睹的狀況時,小灸不由得發出叫聲,經葛萊德解釋後才了解現在情況,雖然在卡布崗所有電腦系統受Pascal支配而全體反叛下,小灸早已不對公司設備歷經混亂後能完好如初抱有任何的期望,然而當她看見在這陣混亂中竟也包含著炸彈這種高破壞性設施時,她對於公司能撐過這場浩劫而仍安然無恙的可能性更加憂愁了。

  然而此時另一件事情更引起她的注意,當她看見螢幕上開發大樓的火警燈持續閃爍而自己竟然完全沒有察覺到時,她發現開發大樓的火勢早已延燒至三十樓以上,即使啟動滅火裝置也只能延緩火勢,無法完全根絕火勢的蔓延。

  卡布崗公司的建築安全,在這場浩劫中令人堪憂。

 

  「這是怎麼回事?」

  卡琳卡看著窗外高樓之下的開發大樓廣場前一片瓦礫的塵煙,驚聲道:「那裡竟然有裝設炸彈!」

  所幸在這種情況下,沒有任何民眾待在大樓前廣場上,沒有造成任何傷亡算是不幸中的大幸。

  計數器上的時間只剩兩分鐘,她們的注意力很快被擴音器中傳出的嗓音轉移回來。

  「SN-6密令的副程式!」再度佔滿整組螢幕的Pascal,仍舊是以出乎意料冷靜的平淡嗓音,如同朗誦課文般補充剛才未提到的遊戲規則,「裝置在卡布崗公司內部的炸彈並不只有目前位處電力機房的這枚炸彈,事實上,這棟大樓各處早已被裝置了小型炸彈,只要猜錯一次密碼,其中一處的炸彈便會爆炸。」

  「你說什麼,竟然……」卡琳卡聞言,在極度不敢置信這項自爆程式設計者的殘暴下,怒目瞪視著螢幕上的Pascal。

  「一切完全依照程式的指示進行,不論是十五年前還是現在結果都不會改變,人們再怎麼努力都無法違抗程式規劃好的結果!」

  聽聞Pascal的話,卡琳卡察覺了語中的玄機,因此問道:「十五年前,怎麼回事?」

  「十五年前,與SN-6相同的密令也曾啟動過,但那時是稱為PT-3密令,雖然在那次的肅清動作中沒有造成硬體上的損失,然而所有的公司資料全部被系統消除,那也是Pascal的前任母體電腦管理者Algol最後一項任務,如今這項任務將由Pascal來執行。」

  絲毫沒有高低起伏,Pascal平板的聲調終於讓卡琳卡按耐不住而喊道:

  「為什麼、為什麼你會這麼冷靜,只要這棟大樓的炸彈爆炸的話,你也會一起被炸成碎片,身為能夠自己思考、自己感覺,擁有與人類相近的最高人工智慧的你,為什麼不會感到害怕呢?」

  Pascal搖了搖頭,儘管她的動作帶了幾分沉重,但她的表情仍舊沒有變化。

  「即使感到害怕也是不會改變最後的結果的,一切都只能依循著最初設定好的程式運作,沒有人能夠抵抗這個命運,不論是千百年來都是一樣!」

  「你錯了!」卡琳卡大喊道,「人類就是不斷在與命運相逆的環境下奮鬥才能活到現在,任何人都沒有所謂的命運,就算有也能靠著自己的雙手去抵抗他,你不也是一樣嗎?」

  儘管不是對自己說,但卡琳卡的這番話卻深深撼動了佛魯迪的內心,他透過螢幕看著卡琳卡的臉龐,不知不覺露出了微笑。

  「………」但相較於卡琳卡激動的情緒,Pascal的表情依然沒有變化,抑或是臉部器官根本無法表現任何變化。

  僅僅半秒的沉默很快被佛魯迪所打破:

  「只剩一分鐘了!」

  「我知道!」

  當Pascal的聲音消失後,兩人再度重回解謎之上。

 

  「冷靜一點!」卡琳卡告誡著自己,並重新整理自己腦中的思緒,「如果不是PASCAL的話密碼會是什麼呢?」

  「經由編譯器編譯後執行結果,這個程式的確是帕斯卡三角形,但是,為什麼密碼不是PASCAL。」

 

  時間剩下四十五秒。

 

  「帕斯卡三角形,最下一層的數列總和同時也是斐波納契數列的總和的兩倍,難道密碼是FABONACCI嗎?」

  佛魯迪搖頭道:「不,如此一來與整個程式的違和感太過龐大,此外若是要表現斐波納契數列,繪出整個三角形又過於無意義。」

 

  時間剩下三十秒。

 

  「你說的沒錯!」卡琳卡緊壓著額頭沉思道,「但是密碼究竟是什麼,對了……」

  此時,卡琳卡的腦海中忽然想起來Pascal先前曾說過的一席話。

  『好好享受你們最後的時光吧,就有如遞迴般你們只能在永無止盡的輪迴中繼續生存下去。』

  看似只是重挫銳氣的話語,其中卻包含著足以推理出解答的關鍵線索。

 

  時間剩下二十五秒。

 

  「莫非是,遞迴的特性!」卡琳卡大喊道。

  「遞迴的特性?」

  「遞迴函式若沒有設立一個跳出的條件,將會陷入永遠的無限迴圈中,關鍵就是那跳出的條件!」

 

  時間剩下二十一秒。

 

  「但是這個程式中的跳出條件是取決於輸入值,難道是INPUT嗎?」佛魯迪說道,「等一等,這會不會是時間早晚的問題!」

 

  時間剩下十五秒。

 

  「時間早晚?」卡琳卡問道。

  「帕斯卡三角形在中國實際上是稱為『楊輝三角形』,早在帕斯卡發現這個三角形的六百年前,宋朝數學家楊輝就已發現這個三角形了!」

 

  時間剩下十三秒。

 

  「即使從PASCAL跳到了PASCAL三角形,仍舊沒有從遞迴中跳出,必須偏離遞迴的時間中,回到更早的年代……」

  佛魯迪說到此處,卡琳卡恍然大悟:

  「也就是最先發現這種三角形的楊輝!」

 

  時間剩下八秒。

 

  「你確定這個答案是正確的嗎?」佛魯迪問道。

 

  時間剩下六秒。

 

  「既然是我們兩人共同想出來的,應該就是正確的!」卡琳卡面露笑容道,同時擺出了大拇指的手勢,「如果是錯誤的,也只能聽天由命了!」

  看見卡琳卡如此自信的表情,佛魯迪知道自己是不用擔心了。

  「哼,還真是悠哉呀!」

 

  時間剩下三秒。

 

  切換成萬國語系中的簡體中文輸入法後,卡琳卡以最快的打字速度將文字鍵入密碼輸入欄位之中。

 

  『楊 輝』

  時間剩下一秒。

 

  在最後一秒的那一剎那,計時器上的數字終於停了下來。

  停留在最後的「00:00:39」之上。

 

  「呼……」

  看著已停止的計時器,卡琳卡鬆了一口氣,全身攤軟在椅子上,剛才緊繃的神經也瞬間紓解開來。

  「這種密碼大概只有設計者本人才解得開吧!」以疲累的目光看著螢幕上「DISARMED」的字幕,卡琳卡苦笑道。

  「但是你不是也將它破解開來了嗎?」

  面對佛魯迪的一番話,卡琳卡自嘲道:

  「呵,那只是運氣好罷了!」

 

  恢復平靜的空氣中,那平板的柔聲此時從螢幕中傳了出來,並對兩人稱讚道:

  「你們果然是最好的拍檔,卡琳卡小姐與佛魯迪先生!」

  「是嗎?」卡琳卡聞言,毫不掩飾地笑道,「而你卻是最差勁的電腦系統,你早已知道了這個自爆系統的密碼了,所以才對我們透露了密碼的提示,沒錯吧!」

  「嗯!」Pascal微微頜首,在面無表情的臉龐上終於透露出些許變化,「創造我的前任社長綾小路貫太郎先生,生前就是對PASCAL極有研究的電腦工程師,他以PASCAL這種高階語言創造出了我,同時也因對PASCAL高度的興趣而賦予了Pascal這個名字,因此我很容易就能預測到他所設立的密碼是什麼。」

  「但是你,卻沒有因此去抵抗這個無理的命運!」卡琳卡說道,「只是一味地遵循命運讓它執行而已。」

  「的確是,但是卡琳卡小姐……」Pascal的細聲中帶有一種悲涼感般答道,「任何人都會有無法突破的命運,因為這是出生以來就註定好的事情,而我出生以來的唯一使命就是保護好這個公司,即使是走向毀滅也要遵從公司的旨意,這種宿命正是我們的悲哀。」

  「就算是前方的道路無法通行,仍然有許多條路可以繞道而去,Pascal!」卡琳卡的笑容此時更加上一層鼓勵的意味,「這個公司並不是專屬一個人所有,而是融匯龐大工程師團隊與管理人員心血所集結起來的成果,它的結果絕對不會只因一個密令而走向毀滅。」

  解除自爆系統,卡琳卡順利中止了電力系統,並在Pascal的認可下獲得對其他子系統進行操作的權限,儘管實際操作的控制閥位於各部門中,但透過卡琳卡的操作解除了其他子系統的基層保護,降低其他分隊成員的任務難度。

  當所有工作完成之後,卡琳卡看了看PET上的時間後向佛魯迪說道:「差不多也該向綾小路回報了!」

  「嗯!」佛魯迪輕應一聲,回到了卡琳卡的PET之中。

 

  透過螢幕遙望著卡琳卡離去的背影,Pascal雖有數次想喚住他們的念頭,但是都被自己另一個想法所覆蓋,她只能對著那逐漸消失的身影輕聲祝福道:

  「再見了,卡琳卡小姐、佛魯迪先生,祝你們好運。」

  接著,閉上了原本就未曾張開過的雙眼。

最後更新時間:2016.07.13

距離十一週年紀念日,還剩下