計算機課結課作業,林星遙做的是彈道計算程序。她把程序單寫得密密麻麻,一條指令一條指令地排,數據區、指令區、臨時變量區劃分清楚。交作業的時候,李抗美看到她那捲紙帶卷得整整齊齊,邊緣用橡皮筋扎著,活像一卷精裝小書。她又低頭看了看自己的——紙帶邊緣毛糙,孔打得深淺不一,讀帶機能不能順利識別還是個問題。
「林星遙,你這捲紙帶,比我人還整齊。」
「紙帶不整齊,機器讀不了。」
「我知道。但我做不到。」
林星遙沒有再說話,把紙帶放進書包里。她的程序順利跑通,輸出結果和手算對照,誤差在允許範圍內。老師在作業本上批了一個「優」,旁邊加了一行字——「程序結構清晰,算法效率高,建議選修後續課程。」林星遙看到那行字,沒有說話。
第二周,老師下課後把她叫到機房。「林星遙,你那個彈道程序,我讓隔壁課題組看了一下。他們說代碼寫得乾淨,拿來就能用。」他扶了扶眼鏡,「系裡有個橫向課題,需要寫一個數值計算程序,涉及三階常微分方程組的數值積分。你願不願意參與?」林星遙看著他,沒有馬上回答。「是三階常微分方程組?」「對,一個典型的彈道問題,比你們課上那個複雜,要編上百行。」「什麼時候要?」「年底之前。不著急,你有時間。」林星遙說:「好。」
老師從抽屜里拿出一疊資料,遞給她。「這是問題描述和數學模型。你先看看,下周開始動手。」林星遙接過資料,翻了翻,上面是密密麻麻的方程和參數——質量變化、推力曲線、氣動力係數、地球自轉修正。比課上的作業深了不止一個檔次。她把資料收好。「我能用機房的時間來寫嗎?」「可以。每周額外給你兩個小時的機時。」
林星遙開始寫程序。程序比預想複雜,變量多,方程耦合,數值積分方法的選擇會直接影響計算精度和速度。她先用歐拉法做了粗算,發現誤差太大,改成改進歐拉法,又把步長改小了一半,結果收斂。她花了一周時間把主程序框架搭好,又花了一周調試子程序。每次去機房,她都提前把要改的地方寫在紙上,上機後只做兩件事——打孔、讀帶。
李抗美看著她桌上那疊越來越厚的紙帶和草稿紙,忍不住問了一句:「你那個課題,什麼時候做完?」「快了。」「快了是多久?」「月底。」
月底,林星遙把最後一捲紙帶裝進讀帶機,看著指示燈閃爍,機器嗡嗡響了幾秒,輸出設備打出幾行數字。她把結果拿過來,跟理論解對照了一下,誤差在千分之五以內。夠了。她把程序清單整理好,把計算結果謄寫在正式的報告紙上,裝訂好,交給老師。老師翻了翻,看到那工工整整的代碼,抬頭看了她一眼,沒有多說什麼。
過了幾天,老師把她叫到辦公室。屋裡多了一個人,穿著軍裝,五十來歲,頭髮花白,手裡拿著一份文件。「林星遙,這是張教授。」老師介紹說,「空氣動力學研究室的,他看了你的程序,想讓你參與一個更大的項目。」張教授看著她。「林星遙同學,你的程序我看過了。代碼寫得乾淨,邏輯清楚,沒有廢話。我們這邊有個項目,需要計算飛行器的氣動特性,涉及到很多偏微分方程的數值解。你願不願意來?」
林星遙愣住了。她原以為做完這個課題就結束了,沒想到還有下一步。「張教授,我能行嗎?」「你不行,我不會找你。」張教授把那份文件放在桌上,「這個是保密協議。你簽了,才能看資料。」林星遙拿起筆,在那份協議上簽了自己的名字——林星遙。她看著自己寫的名字,簽完之後,那兩個字嵌在白紙黑字之間,仿佛發出輕輕的嗡鳴。
張教授給她看了項目簡介。「這是一個新型飛行器的氣動計算項目,需要用數值方法求解納維-斯托克斯方程。在現有條件下,這是國內最前沿的計算流體力學問題之一。」納維-斯托克斯方程,她只在書上看過名字。「這個項目目前只有三個人——我,一個研究生,還有你。」張教授說。「我需要你做什麼?」「寫程序,算結果。不會的學,不懂的問。」
林星遙看著那份項目簡介,看了幾秒。「好。」
從計算機房走出來,天已經快黑了。她站在台階上,呼出一口白氣,霧氣在冷空氣里凝成一小團,又很快散了。她把手插進口袋裡,摸到那枚子彈殼。她想起孫老師說過,「做學問的路,是一個人走的路。」但這一次,她不覺得是。張教授給了她機會,老師給了她引薦,那些代碼背後是很多人的信任和期待。她不是一個人在走。
晚上,她坐在宿舍書桌前,翻開張教授給她的資料。第一章,控制方程的推導。她一個字一個字地看,每看到一個不熟悉的符號就停下來查書,每看到一個不理解的物理概念就翻回前面的章節。資料看完,已經是凌晨一點。她把資料合上,放在枕頭底下,躺下來。李抗美翻了個身,含混地問了一句「你還沒睡」,她「嗯」了一聲,沒有多解釋。
窗外,月亮從雲層後面探出頭來,光灑在窗台上。那些紙帶、程序、方程、保密協議,都在枕頭底下躺著,彼此相安。明天,她要去機房調試第一個子程序。後天,她要參加項目組的第一次討論會。再往後,有更多代碼要寫,更多方程要解。她閉上眼睛,在心裡把張教授說的那句話過了一遍——「不會的學,不懂的問。」她做得到。她從來都是這麼過來的。