?更新時(shí)間:2011-06-12
發(fā)得晚了一小時(shí),因?yàn)檫@章寫(xiě)得多了點(diǎn)……
明天還是希望能沖一下新書(shū)榜啦,新書(shū)最后一周了,請(qǐng)大家多多支持!
===============================================
趙亮一打開(kāi)電腦,衛(wèi)昕就有點(diǎn)想找借口離開(kāi)講座了。他很清楚自己這個(gè)舍友的編程習(xí)慣有多惡劣——他會(huì)把自己的每一個(gè)思路都用自言自語(yǔ)地方式表達(dá)出來(lái)。
但衛(wèi)昕出不去,左右兩邊都有專(zhuān)心解題的人,要是他這時(shí)候說(shuō)“打擾一下借過(guò)”那必然是要惹得人家生氣的了。
于是他只好靠在椅背上,嘆了口氣,聽(tīng)著趙亮極為敬業(yè)地匯報(bào)他的進(jìn)展。
“修改一下sort排序的比較標(biāo)準(zhǔn)可以縮短200ms……”
“……這里不對(duì),一定有別的辦法?!?br/>
“只要在原先的算法上再優(yōu)化一下的話(huà)……”
衛(wèi)昕后悔自己沒(méi)帶耳機(jī),坐在這個(gè)死話(huà)癆身邊真是受罪。
“競(jìng)價(jià)搶車(chē)位”這道題目,簡(jiǎn)單來(lái)說(shuō)就是讓大家想出一個(gè)算法,解出在特定條件下,怎樣劃定一個(gè)占地面積最大、消費(fèi)額最少的停車(chē)位。這種要在腦中建立坐標(biāo)點(diǎn)的空間運(yùn)算型題目,衛(wèi)昕最不擅長(zhǎng)了,所以想真心關(guān)注一下趙亮的進(jìn)展都不行,聽(tīng)他的話(huà)就好像聽(tīng)天書(shū)一樣。
時(shí)間一分一秒地過(guò)去,十五分鐘后,還有人在焦急地畫(huà)著草圖建立算法模型,有人倒是已經(jīng)編好,但效率還是不夠高,半秒的運(yùn)行時(shí)間限制實(shí)在有些苛刻,于是他們一直在抓耳撓腮地想辦法優(yōu)化程序。
趙亮也進(jìn)入了那種焦慮狀態(tài),看樣子是無(wú)論如何也突破不了瓶頸。
“媽的!”他忽然一拍桌子,大吼道,嚇了衛(wèi)昕一跳。
周?chē)娜丝戳怂谎郏肋@是想問(wèn)題想得急了,也就沒(méi)有太過(guò)在意。不過(guò)衛(wèi)昕卻聽(tīng)清了他后來(lái)小聲說(shuō)的那句話(huà):“那個(gè)算法的優(yōu)化方法我有在夢(mèng)里見(jiàn)過(guò)的,可惡就是想不起來(lái)……”
衛(wèi)昕半瞇起眼睛。
看來(lái),這一次他不能光做旁觀(guān)者了。
半小時(shí)過(guò)去,參加這次小型編程競(jìng)賽的人都已經(jīng)把程序發(fā)到評(píng)審團(tuán)的電腦上。測(cè)試數(shù)據(jù)的過(guò)程很快,不過(guò)十分鐘,所有的結(jié)果都已經(jīng)整理出來(lái)了。
付蘭一臉不情愿地從評(píng)審團(tuán)中站起來(lái),掃視了一下全場(chǎng)觀(guān)眾,努力壓制住自己的緊張感,把頭埋得很底,站到講臺(tái)上宣布道:“下面是按運(yùn)行時(shí)間排序的結(jié)果。第一名趙亮,384毫秒。第二名吳梓鑫,400毫秒……”
隨著他宣布結(jié)果的聲音,底下不時(shí)有人發(fā)出遺憾的嘆氣聲。就連第一名的趙亮也是一副很裝逼的惋惜狀,不停搖頭。
付蘭說(shuō):“很遺憾,這次競(jìng)賽只有兩名參賽者的源代碼在1k容量以下,但他們的運(yùn)行時(shí)間已經(jīng)超出了500毫秒,另一個(gè)則是2秒,所以不算完成任務(wù)。前兩名可獲得公司提供的鍵鼠套裝,三到五名可獲得鼠標(biāo)墊一個(gè)?!?br/>
獎(jiǎng)品都不是什么高級(jí)貨,但對(duì)于這些程序員來(lái)說(shuō),解題的成就感才是最重要的,所以那幾個(gè)得獎(jiǎng)的人在一開(kāi)始的嘆息之后,也欣然接受了身邊同學(xué)的祝賀,上臺(tái)領(lǐng)獎(jiǎng)。
“最后,趙亮同學(xué)的程序雖然容量已經(jīng)到達(dá)3.7k大小,但在算法效率上做出了相當(dāng)出色的優(yōu)化。公司方面和評(píng)審團(tuán)一致決定,將百度程序員的面試資格授予——”
說(shuō)到這里,付蘭忽然覺(jué)得全場(chǎng)氣氛有變化,先是一靜,然后出現(xiàn)了連續(xù)的低語(yǔ)聲。于是他不禁抬起頭看著觀(guān)眾席。
“這位同學(xué),你有什么問(wèn)題嗎?”付蘭微微一笑,對(duì)著話(huà)筒問(wèn)道。
衛(wèi)昕舉著右手,在所有人的注視下,回答道:“我有一個(gè)1k以?xún)?nèi)的程序?!?br/>
底下一陣騷動(dòng)。
付蘭說(shuō):“可是提交時(shí)間已經(jīng)過(guò)了?!?br/>
衛(wèi)昕說(shuō):“我沒(méi)帶電腦,所以剛才一直沒(méi)機(jī)會(huì)提交。請(qǐng)問(wèn)我能不能現(xiàn)場(chǎng)編寫(xiě)一個(gè)程序?”
觀(guān)眾們都議論紛紛。
“現(xiàn)場(chǎng)編程,他以為他是誰(shuí)???”
“太囂張了!有人認(rèn)識(shí)這家伙嗎?不是你們acm校隊(duì)的吧?”
“沒(méi)聽(tīng)說(shuō)過(guò)他。不過(guò)他說(shuō)是1k以?xún)?nèi)的程序,說(shuō)不定真的……”
付蘭背后的主持人小聲對(duì)他說(shuō):“快把他打發(fā)掉,這人是不是來(lái)?yè)v亂的?”
但付蘭搖搖頭,微微俯下身子,對(duì)著講臺(tái)上的話(huà)筒說(shuō):“那么現(xiàn)在請(qǐng)上來(lái)吧,我代表評(píng)審團(tuán)給你這個(gè)機(jī)會(huì)?!?br/>
于是衛(wèi)昕在眾人的目光中,從容地走到講臺(tái)邊上,在評(píng)審團(tuán)的一臺(tái)電腦前坐了下來(lái)。同時(shí)大屏幕的畫(huà)面發(fā)生了改變,切換到了他這臺(tái)電腦的屏幕。
“我想先確認(rèn)一下,這次競(jìng)賽,是不限語(yǔ)言的,對(duì)吧?”衛(wèi)昕向付蘭問(wèn)道。付蘭點(diǎn)了點(diǎn)頭。
“靠!我之前怎么沒(méi)想到!可以用c++以外的編程語(yǔ)言啊?!币粋€(gè)男青年對(duì)他同學(xué)抱怨道。
他的同學(xué)苦笑道:“沒(méi)用的,那邊有人用了java,還是過(guò)不了?!?br/>
講臺(tái)邊上的衛(wèi)昕,抬起雙手,像準(zhǔn)備彈鋼琴一樣活動(dòng)了一下手指,然后飛速敲出一行代碼。
那行代碼投在屏幕上,所有人對(duì)著這句充滿(mǎn)了“#$*”這類(lèi)火星文一樣字符的代碼,都愣了一下。
“是perl?!庇腥说吐曊f(shuō)道。
大家都沒(méi)想到,衛(wèi)昕使用的竟然是相對(duì)冷門(mén)的、被稱(chēng)為“編程語(yǔ)言中的詩(shī)篇”的perl語(yǔ)言。這種語(yǔ)言的顯著特點(diǎn)就是,語(yǔ)法看上去極為隨性,各種符號(hào)的應(yīng)用也很多。代碼排版得不好就像一堆亂碼,但如果排得認(rèn)真一點(diǎn),卻也有一種飄逸之美。
更關(guān)鍵的是,這門(mén)語(yǔ)言十分簡(jiǎn)潔。
于是所有人對(duì)衛(wèi)昕的態(tài)度都有了轉(zhuǎn)變——說(shuō)不定,他真的能成功!
但衛(wèi)昕寫(xiě)了幾行之后,忽然又舉手問(wèn)道:“請(qǐng)問(wèn)這臺(tái)電腦聯(lián)網(wǎng)了嗎?”
“隨時(shí)可以上網(wǎng)?!?br/>
于是衛(wèi)昕做了一件讓所有人哭笑不得的事。
他打開(kāi)了谷歌搜索引擎。
在百度的講座上,在一群百度員工面前用谷歌來(lái)搜索,無(wú)異于打臉。
衛(wèi)昕接著更是毫無(wú)自覺(jué)地做了第二件讓其他人大跌眼鏡的事——他在搜索perl的基本語(yǔ)法?!皩?duì)不起啊,這個(gè)語(yǔ)言我一年前出于興趣稍微學(xué)過(guò),不是很熟……”他向評(píng)審團(tuán)解釋道。
“搞什么飛機(jī)啊!”
“把他趕走,那小子是上去搞笑的吧!”
觀(guān)眾們憤怒地叫道。
然而衛(wèi)昕不以為意,繼續(xù)在他們鄙夷的目光中,照著語(yǔ)法規(guī)則慢慢敲打代碼,有時(shí)還直接從網(wǎng)頁(yè)上復(fù)制一段現(xiàn)成的過(guò)去。這一切就顯示在大屏幕上,當(dāng)然引起了一片噓聲。
“好了?!毙l(wèi)昕站起來(lái),示意評(píng)審團(tuán)他的編程已經(jīng)結(jié)束。
剛剛還在罵他鄙視他的觀(guān)眾們,忽然意識(shí)到,衛(wèi)昕編完整個(gè)程序,總共只用了十分鐘。
而大屏幕上編輯器的狀態(tài)欄顯示,整個(gè)程序只有77行,800多個(gè)字符。
于是所有人都安靜了,等著評(píng)審團(tuán)運(yùn)行那個(gè)程序,輸入測(cè)試數(shù)據(jù)。
幾分鐘過(guò)去以后——
“衛(wèi)昕的程序測(cè)試完成,數(shù)據(jù)點(diǎn)全部正確,運(yùn)行時(shí)間為,”付蘭說(shuō)到這里,故意停了一下,等吊足了大家的胃口才繼續(xù)說(shuō)道,“370毫秒?!?br/>
全場(chǎng)一片寂靜。
然后,是潮水般的掌聲。
“nb!”
“大牛!”
“吊爆了!”
衛(wèi)昕在這種熱烈的叫喊聲中,一時(shí)也覺(jué)得自己這回玩得有點(diǎn)大,不禁有些不好意思地躲到評(píng)審團(tuán)背后。但付蘭還是把他拉了出來(lái),宣布他獲得這次競(jìng)賽的特別優(yōu)勝,雖然已經(jīng)超出了提交時(shí)間沒(méi)有獲得獎(jiǎng)品,但百度公司對(duì)他提出了面試邀請(qǐng)。于是衛(wèi)昕被付蘭引導(dǎo)著跟一群西裝男握手合影,弄了好久才搞清楚,講座也終于正式結(jié)束。
“去他媽的大牛!那家伙明明違反了規(guī)則,什么現(xiàn)場(chǎng)編程啊!他等于是比我們多想了十幾分鐘才上去編,裝什么逼??!應(yīng)該向主辦方投訴!”一個(gè)眼鏡男在臨走前怒罵道。
其他人自然也有點(diǎn)不爽,但都知道眼鏡男這只是無(wú)理取鬧。衛(wèi)昕確實(shí)是等于多了一些思考時(shí)間,但他現(xiàn)場(chǎng)編出那個(gè)程序是大家有目共睹的,換作他們,即使再給出半個(gè)小時(shí),也不一定能編出那么簡(jiǎn)潔高效的程序。
只有趙亮在一邊,顯得既疑惑又害怕。
他不懂perl的語(yǔ)法,但經(jīng)過(guò)剛才和評(píng)審團(tuán)一位學(xué)長(zhǎng)討論之后,他發(fā)現(xiàn)衛(wèi)昕那個(gè)程序所用的算法,本質(zhì)上和他的算法其實(shí)是差不多的。而學(xué)長(zhǎng)特別向他指出,衛(wèi)昕做了一個(gè)小小的修改,讓整個(gè)算法的效率提高了一大截,并且很好地結(jié)合了perl語(yǔ)言的特點(diǎn),他對(duì)此也是大為稱(chēng)贊,建議趙亮學(xué)習(xí)一下那個(gè)優(yōu)化方法。
但趙亮比誰(shuí)都清楚,那個(gè)方*是他自己在夢(mèng)中曾經(jīng)夢(mèng)到過(guò)的。從看到百度講座的這則消息開(kāi)始,他就常常進(jìn)行編程訓(xùn)練,以至于晚上做夢(mèng)都能碰上編程的場(chǎng)景,夢(mèng)里想的也都是算法。學(xué)長(zhǎng)一提出來(lái),他就立刻意識(shí)到了,衛(wèi)昕所用的正是他剛才一直在努力回憶,卻總也想不起來(lái)的那個(gè)夢(mèng)中算法。
衛(wèi)昕怎么會(huì)知道這個(gè)方法?
想起再往前幾天,自己做過(guò)的那些噩夢(mèng),以及夢(mèng)中的那個(gè)衛(wèi)昕,趙亮不禁后背發(fā)涼。盡管心有不甘,他還是不敢繼續(xù)想下去,臉色凝重地離開(kāi)了會(huì)場(chǎng)。
付蘭把整理會(huì)場(chǎng)的任務(wù)交給其他人之后,跟衛(wèi)昕慢慢走下教學(xué)樓,一邊散步一邊聊天。
他斜眼問(wèn)道:“剛才是用了夢(mèng)日記吧?”
衛(wèi)昕笑了笑,承認(rèn)道:“沒(méi)錯(cuò),也算是運(yùn)氣好,剛好記錄了趙亮那家伙夢(mèng)里的算法。他記不清,我的夢(mèng)日記可是記得一清二楚?!?br/>
付蘭說(shuō):“沒(méi)想到你還會(huì)perl啊?!?br/>
“一般般啦?!毙l(wèi)昕敷衍道。
但其實(shí)他并不算是會(huì)這門(mén)語(yǔ)言,起碼要編一個(gè)像剛才那樣的程序,就辦不到。他一年前確實(shí)是學(xué)過(guò)一點(diǎn)perl,但也只是出于興趣隨手翻了翻書(shū),這方面知識(shí)算是一片空白。而剛才他在查基本語(yǔ)法的時(shí)候,其實(shí)是邊學(xué)邊寫(xiě)好代碼的。
也就是說(shuō),衛(wèi)昕在十分鐘之內(nèi)學(xué)會(huì)了足夠的perl語(yǔ)言知識(shí),支持著他完成了那個(gè)程序!
他現(xiàn)在無(wú)論是在夢(mèng)境還是在現(xiàn)實(shí)之中,都能夠進(jìn)入那種高速思考的狀態(tài),十分鐘的學(xué)習(xí),表面看上去只是翻了翻網(wǎng)頁(yè),其實(shí)他已經(jīng)在那短短的時(shí)間內(nèi)消化吸收了很多知識(shí)。
難道接觸夢(mèng)世界之后,自己的大腦潛能得到開(kāi)發(fā)了?可是從來(lái)沒(méi)看見(jiàn)付蘭展現(xiàn)這種能力啊,因?yàn)樗谷涣艏?jí)了……
想到這里,他便問(wèn)道:“付蘭,說(shuō)說(shuō)你留級(jí)的事吧。我一直都不知道,到底是什么原因呢?”
“就是你聽(tīng)說(shuō)的那些原因啊,除了編程其他科目都不及格?!备短m無(wú)所謂地答道。
“怎么會(huì)?上次我補(bǔ)考都能利用夢(mèng)來(lái)作弊啊,你就不能……難道說(shuō)你是個(gè)極正直的人,不屑去做這種事?看起來(lái)不像吧!”
“沒(méi)人配合我呀?!?br/>
衛(wèi)昕說(shuō):“沒(méi)人配合,你自己用夢(mèng)境子彈來(lái)把知識(shí)點(diǎn)打入大腦也好啊?!?br/>
付蘭搖搖頭:“夢(mèng)境子彈只能提供短時(shí)間記憶,像你背單詞一樣,如果不鞏固的話(huà)過(guò)半天就忘光了?!?br/>
“就算那樣也可以利用的吧。而且夢(mèng)境能力那么強(qiáng)大,你肯定能想出什么辦法通過(guò)考試的?!?br/>
付蘭忽然停下腳步,對(duì)衛(wèi)昕說(shuō):“好吧,那么我就跟你說(shuō)清理由。我就是個(gè)中二病,我的青春期綜合癥一直持續(xù)發(fā)病到現(xiàn)在,懂了嗎?只要是我不喜歡的科目,我理都不想理??疾贿^(guò)就考不過(guò),隨它去了。我只做我喜歡的事,研究我感興趣的東西。另外那也不意味著我喜歡編程,什么算法天才、大師之類(lèi)的,都是那幫無(wú)聊的人傳出來(lái)的,我在編程上是有點(diǎn)天賦,但那也僅限于讓我不用去上課不用很辛苦地去學(xué),也能輕松通過(guò)考試而已,這樣我就滿(mǎn)足了?!?br/>
衛(wèi)昕不知道說(shuō)什么好,沉默了片刻,試探著問(wèn):“那你家里會(huì)支持你這樣做嗎?雖然比爾蓋茨什么的都是大學(xué)上一半就自己退學(xué)了,但大多數(shù)家長(zhǎng)不可能支持這樣吧,尤其是在中國(guó)。”
“家里當(dāng)然鬧翻了。”付蘭眼中閃過(guò)一絲黯淡,但很快又說(shuō),“反正我現(xiàn)在都是自己賺錢(qián),他們也說(shuō)不了我什么?!?br/>
“那你怎么還留在學(xué)校里。你這樣的,不是應(yīng)該退學(xué)自己創(chuàng)業(yè)去了嗎?”
付蘭大笑起來(lái),然后對(duì)莫名其妙的衛(wèi)昕解釋道:“我哪里有什么創(chuàng)業(yè)的能力。至于為什么還在大學(xué)里混……你在別處還能找到這么便宜、條件這么好的住宿嗎?”
衛(wèi)昕抽了抽嘴角,付蘭那個(gè)214號(hào)房確實(shí)是太超值了……
“別說(shuō)我了,你自己有什么打算?”付蘭說(shuō),“百度今年最后一季度的招聘就要開(kāi)始了,你到時(shí)候過(guò)去優(yōu)勢(shì)很大,但也趁這段時(shí)間多學(xué)點(diǎn)吧?!?br/>
“其實(shí)……我對(duì)夢(mèng)世界中的發(fā)展比較感興趣?!毙l(wèi)昕說(shuō)。
付蘭嘆息道:“夢(mèng)世界終究是夢(mèng)世界,夢(mèng)與現(xiàn)實(shí)的交集還是很少,而你最后還是要活在現(xiàn)實(shí)當(dāng)中的?!?br/>
衛(wèi)昕笑了笑,不置可否。
付蘭當(dāng)然不知道,他已經(jīng)有了在夢(mèng)境與現(xiàn)實(shí)中都能使用的能力,再加上夢(mèng)日記這個(gè)強(qiáng)力道具,以后一定能干出很多大事的,他毫不懷疑這一點(diǎn)。
他又問(wèn)付蘭:“哎,你之前說(shuō)有什么重要的事?!?br/>
“噢,那個(gè)……”付蘭望著天說(shuō),“第一個(gè)是想說(shuō),六英雄這個(gè)設(shè)定其實(shí)《蒼翼默示錄》里也有,剛好哈扎馬也和那個(gè)游戲有關(guān)系,真是有趣的巧合。第二個(gè)是想說(shuō),你那天晚上在那個(gè)監(jiān)獄夢(mèng)境里讓我用弗洛依德的理論給你解夢(mèng)。而我當(dāng)時(shí)竟然忽略了最重要的一點(diǎn),那就是弗洛依德無(wú)論怎樣都會(huì)扯到性上,所以當(dāng)時(shí)的結(jié)論應(yīng)該補(bǔ)充的就是……”
“停停停!”衛(wèi)昕趕緊制止他,以防他說(shuō)出什么惡心的事來(lái),“你說(shuō)這兩件事有什么用意?”
付蘭眨了眨眼,說(shuō):“這還不明顯?為了吐槽啊?!?br/>
“就為了吐槽,這種過(guò)了好幾天的事你還拿來(lái)再講一遍?”衛(wèi)昕下巴都要掉地上了。
付蘭聳聳肩:“我得了一種不吐槽就會(huì)死的病。”
“那你還是去死吧!”