第六章 國術社(一)(1 / 2)

“穀歌公司編程挑戰大賽?”功夫不負有心人,在花費了大量時間搜索信息後,梁虎從網上看到了這個消息,他立刻鏈接到這家位於星條國的軟件公司主頁,細細查看對方的要求。穀歌是一家網絡軟件開發公司,這一次它們發起的挑戰賽,其主題是針對圖文資料的搜索,要求在十萬張隨機提供的圖文資料當中,找出符合搜索要求的那部分。這可是一個相當有困難的題目,畢竟不久之前才有新聞報道,說星條國五角大樓在這方麵投入了巨大的人力、物力,耗費了數年的時間,也依然沒能取得突破性的進展。

題目越是困難,就越容易引起梁虎興趣,更不要說對方拿出了豐厚的獎金,第一名10萬美刀如果按照眼下1:8的彙率折算成RMB,差不多是梁虎六、七年撈偏門的收入了,哪怕衝著這個梁虎都要好好拚搏一次。在打定了主意後,梁虎拿著紙筆坐在書桌麵前,這也是他的一個習慣,在編譯較為繁瑣的程序時,梁虎喜歡先用文字理清自己的思路,這才仿佛“下筆如有神”那樣飛快的打出一行行的代碼。

一開始梁虎的想法,是編譯一個識別程序出來,好像人類的大腦那樣去一一鑒別所要檢索的圖文資源內容,不過他很快就發現這根本就是不現實的事情,自己根本就不可能獨自一個人在挑戰大賽的限期內寫出數量恐怖的代碼,再說穀歌公司提出這樣的要求,肯定會要用在民用互聯網方麵,根本沒必要浪費大量的代碼來確保搜索結果的絕對精確度。

在拋棄了這個念頭之後,梁虎重新開拓的自己的思路,經過幾個小時的冥思苦想,梁虎發現自己的思路漸漸清晰了起來,他一邊在本子上劃來劃去,一邊自言自語說道:“嗯,一個圖片在儲存的時候會被記錄它的尺寸和色彩,所以在計算機的眼中,這才是圖片的真正內容,既然如此隻需要按照計算機的思路去做就可以了!先把圖片縮小到最基本的尺寸,然後再把像素轉化到最基本的程度,接下來把兩個都縮小的圖片數據放在一起比較,若是它們的數據相似的話,就表明壓縮前的原圖也比較相似。”

在確定下這個算法思路後,梁虎回到了電腦麵前,他很快就將整個程序的初稿碼了出來。看了看總共就80幾行的代碼,梁虎點下了“編譯”的指令,在調整了幾個BUG之後,梁虎版圖文搜索引擎的內部測試版就新鮮出爐了,不過接下來的事情才是整個工作當中最繁瑣的,梁虎從互聯網下載了一些圖片,開始對程序的實用性等方麵進行測試,同時也根據測試的結果來修正他在程序中設定的參數數值。

忙碌了兩天時間,梁虎最終確定了所有的參數,這個版本的搜索引擎已經可以找出大部分相似的圖片了,雖然偶爾會出現諸如把同是肌肉男的施瓦辛格當作是史泰龍的情況,不過出現概率之小卻也還在梁虎可以接受的範圍之內。梁虎知道若是想要繼續改進還有極大的空間,比如以幾何數值加大代碼行數,用更為精細的算法來壓縮和比較圖片,或者花費更多的精力把互聯網上能搜索到的圖片都在事先一一做出索引,顯然這可就不是他一個人能做的了的事情了。

到了這一步,梁虎就算是基本完成了參加挑戰賽的作品,不過出於黑客的本能梁虎卻還是對它再進行了第三次的編譯,把本來就不多的程序代碼進行了更進一步的優化,以提升靜默執行時候的效率和略微減少程序在運行時候所占用的內存空間,誰讓黑客自己的程序都往“快”和“小”這兩個方向發展呢。

等到最終的參賽版本確定之後,這個被命名為“COOL”的圖文搜索引擎就算正式完成了,梁虎用事先申請好的“Tiger”這個用戶名把這個隻有49行代碼的程序上傳到了穀歌網站,然後他留下了自己的電話和電子郵件等聯絡方式,便將一切拋之腦後,接下來的事情已經不是他可以左右的,反正自己在這個程序上已經竭盡了全力,就算不行也沒有遺憾了。

國慶節過後,梁虎回到校園正式開始了自己的大學生活,和高中那種高密度的作息時間相比,大學的課程要鬆散和自由很多,梁虎每天上午和同班同學在中文係教室進行必修課的學習,等到了下午大家則各奔東西分別去不同的地點參加選修課的學習,每個人看上去似乎都忙忙碌碌的,不到晚上就寢時間根本就找不到人,而梁虎因為每天走讀的緣故,更是和班級裏的其他同學形同陌路,隻是偶然與關係還算不錯的呂芷珊通上幾次電話,這也是梁虎唯一一個了解學校事務的渠道。