1986年4月11日,晚上九點,深圳實驗中學計算機房。
日光燈管發出輕微的嗡嗡聲,兩台蘋果II型計算機的顯示器閃著綠色熒光。周明坐在靠窗的那台前,手指在鍵盤上快速敲擊。螢幕上,一行行BASIC程式碼像流水般滾動。
“第七題,迷宮生成演算法……”他喃喃自語,眉頭緊鎖。
窗外是深圳四月的夜晚,空氣裏已經有初夏的黏稠感。遠處工地的探照燈劃破夜空,國貿大廈主體結構已經封頂,像一柄巨劍直插天際。更遠些的地方,是香港新界的燈火,隔著一道深圳河,璀璨如星河倒懸。
“周明,還不走啊?”管理機房的李老師推門進來,手裏拿著鑰匙串。
“李老師,我再除錯一會兒。明天初賽,這個遞迴子程式總在第五層堆疊溢位。”周明頭也沒回,眼睛盯著螢幕。
李老師走過來,俯身看了看程式碼。“你把陣列維度改成動態分配試試。BASIC語言堆疊小,靜態陣列太占記憶體。”
周明眼睛一亮,手指重新動起來。十分鍾後,程式順利執行到第十層遞迴。
“成了!”他長舒一口氣,這才感覺到後背已經汗濕。
李老師拉過一把椅子坐下,看著這個十四歲的學生。周明穿著實驗中學的淺藍色校服,袖口洗得有些發白,眼鏡片後麵的眼睛因為長時間盯著螢幕而布滿血絲。
“周明,有件事我得提醒你。”李老師語氣認真,“明天初賽,不隻看程式設計能力,還要考計算機原理和數學基礎。你這兩個月光顧著刷題,課本上的基礎知識有沒有複習?”
周明愣了一下,隨即點頭:“看過了。布林代數、邏輯電路、二進製轉換,我都……”
“我問你,”李老師打斷他,“馮·諾依曼體係結構的五大部件是什麽?”
“運算器、控製器、儲存器、輸入裝置、輸出裝置。”
“計算機的三條匯流排呢?”
“地址匯流排、資料匯流排、控製匯流排。”周明對答如流。
李老師這才露出笑容:“不錯。看來你沒偏科。”他站起來,拍拍周明的肩膀,“但還有更重要的一點——心態。明天有廣州、珠海、東莞的選手過來,強手不少。你不要有壓力,正常發揮就好。你才初二,就算這次沒進省賽,還有明年、後年。”
周明卻搖搖頭:“李老師,我必須進省賽。進了省賽,暑假就能去北京參加全國決賽。聽說決賽前三名,可以直接保送清華大學計算機係少年班。”
“你想去少年班?”
“嗯。”周明用力點頭,“我爸說,中國現在最缺的是晶片設計人才。少年班三年學完本科,四年就能碩士畢業,比正常學製快三年。我想早點學成,早點幫上忙。”
李老師怔住了。這孩子眼裏的光,不是少年人常見的爭強好勝,而是一種沉甸甸的責任感。
“你爸……周副市長知道你這麽想嗎?”
“我沒跟他說。”周明推了推眼鏡,“他最近太忙了。北京開會回來,又要管菜市場漲價的事,每天都很晚纔回家。我不能讓他分心。”
機房裏的掛鍾指向九點半。李老師歎了口氣:“收拾東西吧,我送你回家。明天八點開考,你得養足精神。”
兩人走出校門時,夜風帶來海的氣息。深圳的四月,木棉花已經開敗,落了一地的紅。路邊的大排檔生意正熱鬧,炒粉的香味彌漫在空氣裏。
“李老師,你說……”周明忽然問,“計算機將來會變成什麽樣?”
“為什麽這麽問?”
“我看了一本香港帶過來的《BYTE》雜誌,上麵說日本在研發一種叫‘第五代計算機’的東西,會像人一樣思考。還有,英特爾公司剛發布了80386處理器,整合了幾十萬個電晶體。”周明的語速很快,“而我們實驗室設計的SZ-002晶片,才整合了一萬兩千個。差距太大了。”
李老師沉默了一會兒。“周明,你見過深圳1981年的樣子嗎?”
“見過一點。我們剛搬來時,深南大道還是一條土路。”
“對。那時候,這裏什麽都沒有。”李老師指著遠處燈火通明的建築群,“但現在,我們有國貿大廈,有電子市場,有你們實驗室設計的晶片。四年時間,變化有多大?”
周明若有所思。
“技術發展不是一蹴而就的。日本、美國也是從零開始,一步一步走到今天。”李老師繼續說,“重要的是方向正確,步伐堅實。你們這一代人,要做的就是追趕,然後超越。”
他們走到市委宿舍區門口。周明正要進去,忽然看見父親的身影——周清河剛從一輛吉普車上下來,手裏拎著個公文包,臉上帶著倦容。
“爸!”周明跑過去。
周清河看見兒子,眉頭舒展了些。“這麽晚纔回來?明天不是要比賽嗎?”
“最後除錯了一下程式。”周明注意到父親眼裏的血絲,“爸,你吃飯了嗎?”
“在食堂吃過了。”周清河拍拍兒子的肩,“走,回家。你媽給你熬了綠豆湯,說清熱解暑,明天考試頭腦清醒。”
父子倆並肩走進樓道。樓梯間的聲控燈不太靈敏,周明用力跺了跺腳,燈才亮起來。
“爸,菜市場的事……解決了嗎?”周明小聲問。
周清河腳步頓了頓。“還在想辦法。今天去南塘市場調研,豬肉價格比上週又漲了兩毛,青菜漲了五分。老百姓怨氣不小。”
“為什麽會漲?”
“原因很多。”周清河語氣沉重,“一是周邊農村的養殖戶少了,都進城打工了,供應減少。二是運輸成本增加,汽油漲價了。還有……”他壓低聲音,“可能有人在囤貨。”
周明似懂非懂地點點頭。這些事,離他的計算機世界很遠,但他能感受到父親的焦慮。
到家門口時,周清河忽然說:“明明,明天好好考。技術的事,你們這一代人一定要接上。至於菜籃子的事……是我們這一代必須解決的問題。”
門開了,許凱彤站在門口,手裏端著碗綠豆湯。
“父子倆在門口嘀咕什麽呢?快進來。”
同一時間,淩晨四點,深圳布吉農產品批發市場。
這裏是深圳最大的蔬菜集散地,每天有超過兩百噸蔬菜從這裏流向全市各個菜市場。天還沒亮,市場裏已經人聲鼎沸,手電筒的光柱在黑暗中交錯,討價還價聲、裝卸貨聲、三輪車鈴鐺聲響成一片。
周清河穿著深藍色的確良襯衫,腳上是半舊的解放鞋,混在人群中。他身邊跟著市政府辦公廳的小林,還有物價局的兩位同誌。他們淩晨三點就出發了,想看看菜價波動的第一現場。
“周副市長,這邊走。”物價局的老陳在前麵引路,“今天葉菜區的批發價比昨天又漲了5%。”
一行人擠過擁擠的通道。地上濕漉漉的,混合著菜葉、泥土和汙水的氣味。兩旁是堆成山的蔬菜:生菜、白菜、菜心、空心菜,在昏暗的燈光下泛著青綠。
周清河在一個攤位前蹲下,拿起一把菜心。“老闆,這怎麽批?”
攤主是個四十多歲的黑瘦男人,正蹲在凳子上記賬,頭也不抬:“一毛八一斤,整筐走,不零賣。”
“昨天不是一毛五嗎?”
“昨天是昨天。”攤主這才抬頭,看見周清河身後的幾個人,愣了一下,語氣緩和了些,“領導,不是我要漲價。我從東莞拉過來,地頭價就漲了。油錢也漲了,過路費也漲了,我不漲就得虧本。”
周清河點點頭,沒說什麽。他站起來,繼續往裏走。
“老陳,你們調查的情況如何?”他問物價局的同誌。
“我們跟了三天供應鏈。”老陳翻開筆記本,借著手電筒的光念,“從東莞、惠州來的菜,地頭價比去年同期漲了20%。運輸成本漲了15%。另外,我們懷疑有批發商囤貨——上週有五個大客戶,每天采購量是平時的三倍,但他們的零售終端銷量並沒有增加。”
“能查到是誰嗎?”
“還在查。但這些人很狡猾,用不同的名字、不同的車來進貨。”老陳合上筆記本,“周副市長,現在的問題是,如果我們強行限價,菜販就不來了,供應會更緊張。如果不管,價格還會繼續漲。”
周清河沉默地走著。市場深處是水產區,腥味更重。幾個工人正從貨車上卸下一箱箱活魚,水花濺了一地。
“周副市長!”一個聲音從旁邊傳來。
周清河轉頭,看見一個熟悉的身影——王建國,當年蛇口電子廠的工人,現在在國貿工地開塔吊。他正蹲在一個魚攤前,手裏拎著條草魚。
“建國?你怎麽在這兒?”
“我來進點貨。”王建國站起來,擦擦手上的水,“我老婆在圓嶺那邊開了個小檔口,賣點蔬菜水產。我今天休息,來幫她進貨。”他頓了頓,壓低聲音,“周副市長,這價格漲得邪乎啊。我老婆說,這兩天來買菜的老太太,都是挑最便宜的爛葉子買。有個老太太,為了省五分錢,走了三個市場。”
周清河心裏一緊。“你們檔口的菜價漲了多少?”
“普遍漲了三成。豬肉漲得最厲害,五花肉從一塊八漲到兩塊四了。”王建國苦笑,“我們也不敢漲太多,怕老街坊罵。但進價高,賣低了就虧本。這個月,估計要白幹了。”
“工人的工資漲了嗎?”
“漲了。國貿工地現在一個月能拿一百五,比去年多了二十。”王建國說,“但錢還是不夠花。我大女兒上初中了,學費、書本費、雜費,一年就要兩百多。小兒子馬上上小學,又是一筆開銷。”
周清河想起自己家的情況。周明在實驗學校,一年學費三百,加上書本費、補習費,差不多要五百。這還是他和凱彤兩人工資加起來的一半。
“周副市長,您得想想辦法啊。”王建國語氣誠懇,“我們這些打工的,不怕吃苦,就怕苦了還沒出路。現在物價這麽漲,攢不下錢,將來孩子上學、老人生病,怎麽辦?”
天邊開始泛白。市場裏的人更多了,三輪車、自行車、小貨車堵在通道裏,喇叭聲此起彼伏。
周清河對老陳說:“今天上午開個緊急會。請農業局、商業局、交通局、物價局的一把手都來。另外,聯係一下東莞、惠州的農業部門,看能不能建立直供渠道,減少中間環節。”
“是。”
“還有,”周清河想了想,“以市政府名義發個公告,公佈主要農產品的指導價。不是強製限價,是給出合理區間。讓老百姓知道,現在的價格已經偏離正常水平了。”
“那囤貨的怎麽辦?”
“聯合工商局,查。抓到典型,重罰,曝光。”周清河語氣堅定,“非常時期,要用非常手段。”
一行人走出市場時,天已大亮。初升的陽光照在濕漉漉的水泥地上,反射著刺眼的光。遠處,深圳這座城市正在醒來,推著自行車上班的人流開始湧動。
小林小聲說:“周副市長,您一晚上沒睡了。先回去休息一下吧?會議我通知到十點。”
周清河搖搖頭。“先去辦公室。我要看幾份資料。”
坐進吉普車時,他忽然想起兒子今天要參加計算機競賽。那個在程式碼世界裏尋找出路的孩子,和這個在菜市場裏為生計奔波的城市,其實是同一個問題的兩麵——
發展是為了什麽?技術是為了誰?
車子發動,駛向市政府大樓。周清河閉上眼睛,腦海裏浮現出父親周誌剛的話。那是去年除夕夜,一家人圍坐吃飯時,父親喝了兩杯酒後說的:
“清河啊,你現在管的事大了。但不管管多大,都要記住——老百姓的飯碗,比什麽都重要。飯碗裏有肉有菜,心裏才踏實;心裏踏實了,纔有力氣去追那些高科技。”
當時他隻覺得這是老人樸素的想法。現在站在菜市場的泥水裏,他才真正懂了。
上午八點,深圳中學禮堂。
廣東省青少年計算機程式設計競賽深圳賽區初賽在這裏舉行。能容納三百人的禮堂坐了七成滿,大多是十幾歲的學生,也有少數二十出頭的大學生。空氣裏混合著紙張、汗水和緊張的氣息。
周明坐在第三排中間的位置。他檢查了準考證、鋼筆、鉛筆、橡皮,然後把它們整齊地擺在桌上。左邊坐著的是廣州來的選手,一個戴厚眼鏡的男生,正在閉目養神;右邊是珠海的一個女生,手指在桌麵上輕輕敲擊,像是在默寫程式碼。
監考老師開始分發試卷。厚厚的一疊,分三部分:基礎知識(50分)、演算法設計(30分)、程式設計實操(20分)。考試時間三小時。
周明深吸一口氣,翻開了試卷。
第一部分相對簡單。二進製轉換、邏輯運算、計算機發展史……他很快做完,看了看錶,用了四十分鍾。
第二部分開始上難度。第一道題是“用最少比較次數在100個無序數中找出最大和最小值”。周明在草稿紙上畫了流程圖,推算出最優比較次數是⌈3n/2⌉-2,即148次。接著是迷宮最短路徑、揹包問題、快速排序的優化……
他的筆尖在紙上沙沙作響,額頭滲出細密的汗珠。禮堂裏很安靜,隻有翻卷聲和寫字聲。窗外傳來隱約的市井喧鬧,但很快就被他遮蔽在意識之外。
十點半,他進入第三部分:上機程式設計。考場前方擺著二十台計算機,考生分批上前。周明抽到的是第7題:“模擬操作係統程序排程”。
他坐到計算機前,手指懸在鍵盤上方,閉上眼睛思考了三十秒。然後,敲下第一行程式碼:
```
10 REM Process Scheduling Simulation
20 DIM P(10,3):REM Process ID,Arrival Time,Burst Time,Priority
```
時間一分一秒過去。旁邊的考生有的在抓耳撓腮,有的在快速敲擊。周明完全沉浸在自己的世界裏,螢幕上的程式碼一行行增加,像在搭建一座精密的城堡。
“時間到!”監考老師的喊聲把他拉回現實。
周明長出一口氣,按下儲存鍵。程式還沒完全除錯完,但核心演算法已經實現。他站起來,腿有些發麻。
走出考場時,陽光刺眼。不少考生聚在走廊裏對答案,爭論聲此起彼伏。
“第七題你用的是什麽演算法?優先順序搶占還是時間片輪轉?”
“我覺得第三題應該用動態規劃,你怎麽用貪心?”
“完了完了,我二進製轉換算錯了……”
周明沒有參與討論。他走到禮堂外的台階上坐下,從書包裏拿出水壺喝了口水。腦子還在高速運轉,複盤剛才的程式碼有沒有漏洞。
“周明!”李老師從遠處跑過來,臉上帶著笑,“考得怎麽樣?”
“還可以。程式設計題沒做完,但思路應該是對的。”
“那就好。”李老師在他身邊坐下,“剛才你們考場傳出來的訊息,你基礎知識部分可能是滿分。”
周明愣了愣:“真的?”
“幾個監考老師說的,他們看了你的卷子。”李老師拍拍他的肩,“下午就出成績。如果進了前十,下個月去廣州參加省賽。”
周明心裏湧起一陣激動,但很快又平複下來。他想起了淩晨在菜市場看到的場景,想起了父親疲倦的臉。
“李老師,計算機……真的能幫到那些買菜的老百姓嗎?”
這個問題讓李老師愣住了。“為什麽這麽問?”
“我爸今天淩晨四點就去菜市場了。他說有人囤貨,導致菜價上漲。”周明低頭看著自己的手,“我在想,如果我們設計一個係統,把每個批發市場的交易資料都錄進去,分析價格波動,是不是就能早點發現有人在囤貨?”
李老師眼睛亮了起來。“這個想法很好啊!就是現在說的‘資訊化管理’。不過,這需要建資料庫、聯網、寫分析程式……以現在的技術水平,還不太容易實現。”
“但將來一定可以。”周明抬起頭,眼神堅定,“我要學的,就是能讓計算機做這些事的技術。”
遠處傳來放學的鈴聲。李老師站起來:“走,先吃飯。下午看成績。”
他們走出校門時,看見馬路對麵停著一輛熟悉的吉普車。周清河站在車邊,正在跟司機說著什麽。
“爸?”周明跑過去,“你怎麽來了?菜市場的事……”
“上午開完會了,抽空過來看看你。”周清河打量著兒子,“考完了?感覺如何?”
“還行。”周明頓了頓,“爸,菜價的事解決了嗎?”
周清河沒有直接回答。“先上車,送你回家吃飯。路上說。”
車裏,周清河簡單說了上午會議的決定:建立農副產品直供渠道、公佈指導價、打擊囤積居奇。但他也坦言,這些措施見效需要時間。
“明明,你記住,”周清河看著窗外的街景,“管理一個城市,就像執行一個複雜的程式。有輸入(資源),有處理(政策),有輸出(結果)。但和程式設計不同的是,你麵對的不是冰冷的程式碼,是活生生的人。人的行為有規律,但也有意外;有理性,也有情緒。所以,再好的演算法,也要留出容錯空間。”
周明認真聽著。這些話,比計算機課本上的任何知識都深刻。
“還有,”周清河繼續說,“你設計的程式,如果出了bug,可以debug,可以重來。但一個政策如果出了偏差,影響的可能是幾千、幾萬人幾個月的生活。所以,做決策要慎之又慎。”
車停在市委宿舍門口。周清河沒有下車:“我還要去參加一個外商座談會。你回去好好休息,下午成績出來,無論好壞,都要平常心。”
“爸,”周明下車前忽然問,“咱們家那套新宿舍……還申請嗎?”
周清河沉默了幾秒。“申請。錢的事,爸再想辦法。
下午四點,競賽成績公佈。
周明站在紅榜前,從第十名往上找。第九、第八、第七……沒有他的名字。他的心一點點往下沉。
然後,在第三名的位置,他看見了:
“第三名:周明,深圳實驗中學,總分188/200”
周圍響起一陣驚呼。這次初賽,190分以上隻有兩人,都在190分整。188分是第三高分。
李老師激動地拍著他的肩膀:“好小子!穩進省賽了!”
周明卻盯著分數明細:基礎知識50分滿分,演算法設計28分,程式設計實操20分滿分——總分應該是198才對。少了的10分,扣在演算法設計上。
“我要看卷子。”他對李老師說。
在考務辦公室,周明看到了自己的試卷。演算法設計部分的第四題,他用的是一種優化演算法,但標準答案是另一種。批卷老師認為他的演算法“理論上可行,但實際應用複雜度高”,扣了10分。
“老師,我的演算法時間複雜度是O(n log n),空間複雜度O(1),比標準答案的O(n²)更優。”周明指著自己的解題步驟,“而且我寫了偽程式碼證明可行性。”
批卷老師是個五十多歲的老教授,扶了扶眼鏡:“同學,你的思路確實新穎。但競賽評分要按標準來。不過……”他笑了笑,“你能想到這種解法,已經很難得了。省賽時,如果遇到開放性問題,你的優勢會很大。”
走出辦公室時,李老師說:“別糾結了。第三名已經很好了,下個月我們去廣州,爭取進前五,拿到全國賽資格。”
周明點點頭,但心裏那個疙瘩還在。為什麽更好的演算法,反而要被扣分?
回家的路上,他一直在想這個問題。走到宿舍樓下時,他看見奶奶李素華正坐在樹蔭下的石凳上擇菜,旁邊圍著幾個老太太。
“周明回來啦!”一個王大媽眼尖,“聽說你考了第三名?了不起!”
周明有些不好意思地笑笑,走過去幫奶奶擇空心菜。
“明明啊,”李素華一邊擇菜一邊說,“剛才菜市場送來些處理菜,便宜。我買了五斤,晚上炒著吃。”
周明看著籃子裏有些發黃的空心菜,沒說話。他知道,奶奶是為了省錢。
“媽呢?”他問。
“去醫院了。說有個職業病的研討會,晚上才能回來。”李素華壓低聲音,“你爸剛纔打電話回來,說晚上也有會。咱們先吃。”
祖孫倆擇完菜,上樓做飯。周明淘米、洗菜,李素華掌勺。簡陋的廚房裏,油煙機的嗡嗡聲和炒菜聲混在一起。
“奶奶,”周明忽然問,“如果有個辦法,能讓菜價便宜下來,但需要很多人改變習慣,甚至損害一些人的利益,這個辦法該不該用?”
李素華翻炒的動作停了停。“你這孩子,怎麽想這麽深的問題?”她關小火,蓋上鍋蓋,“來,跟奶奶說說,怎麽回事。”
周明說了計算機係統管理菜市場的想法,也說了自己演算法被扣分的事。“我覺得,有時候對的事情,就因為跟‘標準’不一樣,就很難被接受。”
李素華笑了。她擦擦手,在圍裙上抹了抹,拉著孫子在廚房的小凳上坐下。
“明明,奶奶沒讀過多少書,但活了六十多年,明白一個道理:這世上啊,很少有非黑即白的事。”她慢慢說,“就說這菜價。菜販想多賺點,有錯嗎?他也要養家。老百姓想少花點,有錯嗎?日子都不寬裕。你爸想讓兩邊都滿意,難啊。”
“那怎麽辦?”
“慢慢來。”李素華拍拍孫子的手,“一點一點改。今天讓菜販少賺一分,明天讓老百姓多理解一分。日子長了,總能找到大家都過得去的辦法。”
她站起來,重新開啟火。“你那演算法被扣分,也是一樣的理。你的辦法可能更好,但別人不熟悉,不敢用。你得先證明它確實好,一次、兩次、三次,大家看明白了,自然就接受了。”
周明若有所思。鍋裏的菜炒好了,香氣彌漫開來。
晚飯後,周明在房間裏看書。八點多,父親回來了,腳步聲很重。周明出去,看見父親癱坐在沙發上,閉著眼睛,一隻手按著太陽穴。
“爸,吃飯了嗎?”
“吃過了。”周清河睜開眼睛,勉強笑了笑,“聽說你考了第三名?好樣的。”
“爸,菜價的事……”
“有個進展。”周清河坐直身體,“下午跟東莞農業局談妥了,建立三個蔬菜直供基地,每天供應二十噸,價格比市場低15%。下週一就能開始供貨。”
“那太好了。”
“但問題還沒完全解決。”周清河歎了口氣,“今天座談會上,幾個港商反映,深圳生活成本上漲太快,他們招工都困難了。一個香港老闆說,他工廠的工人,每個月工資150塊,但吃飯就要花掉60塊,租房30塊,剩下的錢剛夠生活,根本攢不下錢。所以工人流動性很大,幹幾個月就走。”
周明靜靜地聽著。
“所以,菜價不隻是買菜的問題,它關係到整個城市的競爭力。”周清河站起來,走到窗前,“如果連基本生活都保障不好,誰來建設特區?誰來做工?誰來搞科研?”
窗外,深圳的夜晚燈火輝煌。但在這片光芒之下,是無數個家庭在精打細算,是無數個工人在流水線上重複勞作,是無數個像周明這樣的孩子,在燈光下為未來努力。
“爸,我有個想法。”周明忽然說,“關於用計算機管理市場的。雖然現在可能實現不了,但我想試試設計一個原型係統。就算不能用,也是個探索。”
周清河轉過身,看著兒子。十四歲的少年,眼神清澈而堅定。
“好。”他說,“去做吧。需要什麽資源,爸盡量幫你找。”
“還有……”周明頓了頓,“新宿舍的事,如果錢不夠,我的學費可以……”
“不用。”周清河打斷他,“錢的事,爸有辦法。你的任務就是好好學習,好好鑽研技術。這些煩心事,是大人的責任。”
晚上十點,周明回到房間。他翻開筆記本,在新的一頁寫下:
“1986年4月11日。今天明白了兩件事:
1. 好的技術需要好的演算法,但好的演算法不一定能被立即接受。需要時間和證明。
2. 技術問題最終都是人的問題。菜價、住房、工資……計算機不能直接解決這些,但它可以幫助找到解決方案。
目標:設計一個‘市場價格監測與預警係統’原型。”
他開始畫係統架構圖。窗外,深圳的夜晚深沉而廣闊。遠處工地的燈光像星辰般閃爍,那是這座城市永不熄滅的脈搏。
而在城市的另一個角落,布吉批發市場裏,新一天的交易已經開始。來自東莞的第一批直供蔬菜正在卸貨,價格牌上的數字,比昨天低了五分錢。
雖然隻是五分錢,但這是一個開始。