第548章 技術宅

今天一章,明天補上。

周圍的每一寸空間似乎都堆放着各式各樣的電子設備和元器件,光線昏暗,擁擠不堪,林鴻覺得自己彷彿來到了大陸某個城市中城隍廟的電子市場。

走了一段路程之後,他看到,和電腦有關的電子配件和元器件逐漸多了起來。

前面,一個前額劉海染成黃色的青年正在店鋪中玩着電腦遊戲。

這個時候,走在前面的黃越突然站住了,他轉頭對廣永元道:“按照老規矩。”

說完,他便獨自一人先朝前面走了。

“老規矩?”林鴻用疑惑地眼神看了廣永元一眼。

廣永元只好解釋道:“要想進入這個圈子,必須證明自己的技術已經達到這個水平。雖然他們都認識我,但他們都是死腦筋,只認技術不認人。”

繞來繞去,林鴻總算明白,要想繼續向前走,他必須通過他們設置的考驗,頗有點闖關的意味。

“有意思。”林鴻笑笑,對此並不在意,問道,“都有些什麼項目?”

廣永元道:“編程、破解以及網絡滲透。當然,並不一定要全部過關,只要其中一項能夠得到他們的認可就行了。你肯定是沒有問題的,只是走個過場罷了。”

廣永元已經見識過林鴻的破解技術,連《英雄無敵》這樣難啃的骨頭林鴻都三下五除二不費什麼力氣就搞定了,更何況是他們的入門考驗?

這個時候,之前正在玩遊戲的染髮青年已經退出遊戲,他一甩額頭的黃髮,對林鴻道:“請吧。”

第一道關卡,編程。

林鴻也沒有什麼廢話,坐到了剛剛青年的座位,他看到,顯示器中已經出現了一道題目。很顯然,他們對於這種事情已經非常熟悉,擁有了自己一套固定的考驗流程。

給林鴻出的題目爲“使用基本運算來編寫一個你所可能實現的效率最高的平方根函數”。

平方根在數學中是一個非常重要同時也非常複雜的運算,在計算機中實現這種函數通常比較困難,所以編程語言一般都會對這些函數進行封裝,程序員在編程的時候,如果涉及到平方根運算,直接調用函數庫中的函數就行了。很少有人會懂得底層到底是如何實現的。

而且,能夠實現是一方面,能不能做到運算效率高效又是另外一方面。

程序的運行效率,往往就是高手和菜鳥之間的重要區別,真正的黑客,編程的時候。不僅僅只是將功能實現,還會追求最高效率,有時候可能只是一個符號的變化,其執行效率便天差地別。

執行一次的區別可能看不出來,可是如果循環一千次,一萬次呢?

高手和菜鳥編寫的程序,在效率上往往有着很多倍的差距,要想編寫出高效優雅的程序,必須有着對編程語言和計算機底層的本質理解。同時還得擁有豐富的編程經驗,在這方面可做不得假,實踐是唯一提高自身實力的方式。

林鴻知道,求平方根的運算,有一個算法叫做牛頓迭代法,其原理爲:

如果一個數爲X,假設它的平方根爲Y, 如果Y的平方和X相差大於某個給定的誤差,就繼續假設下一個值,如此持續下去,直到最終得到在允許誤差內的值。

至於如何假設這個值。使用的方式便是取平均值。其中必須多次用到除法和乘法。

在計算機中,其本質其實就是加法。整個CPU的運算其實就是一個加法器,當初林鴻實現超腦CPU結構的時候,就是基於一個加法器結構,至於後面的減法、乘法以及除法等運算,都是對在這個加法器的基礎上衍伸而來。

直接使用牛頓迭代法來求平方根,這是普通人的做法,林鴻不用想都知道,如果真的按照這種方式來實現,顯然不能過關。

林鴻略微一思索便有了頭緒,他查看了一下電腦中的編譯器,發現這臺電腦裡面準備得非常充分,不但有市面上常見的一些編程語言編譯器,如C、BAISC、JAVA、C等語言,甚至還有一些非常小衆的編程語言,如Ada、Blue、LISP等等。

最終,林鴻還是調出了電腦中的C語言編譯器,直接敲起代碼來。

霹靂啪啦,僅僅過了二十來秒之後,林鴻便完成了函數的編寫。

他調用用函數執行了一下,程序成功運行,沒有任何地錯誤,一次通過。

想了想,他再次刪掉了兩行,將兩個步驟合併成了一個,最終的函數代碼總數正好爲十行。

“好了。”林鴻道。

站在他身後的廣永元此刻還在皺着眉頭看着他的程序。

他想不通,林鴻爲什麼這麼編寫。

“這麼快就好了?”染髮青年有些詫異。

剛剛他讓出座位的時候,便從一個角落拿出了一個掌上游戲機玩了起來,可是剛剛纔開始玩,便聽到林鴻說已經OK。

這在衆多挑戰者當中,還是頭一回。

染髮青年俯身過去看了一眼,臉上微微一愣,林鴻寫的這十行代碼,雖然他能看懂大部分,但是還有幾個細節他一時之間也沒弄懂。

他順手將林鴻的這個函數加入時間統計宏,執行一萬次之後,最終顯示出了時間,965毫秒,也就是說,不到一秒鐘。

他用敬服的眼神看着林鴻,說道:“你過關了。我在這裡呆了兩年了,兩年來,從這裡走過的人不下五十人,可是從來沒有一個人做到你這一步,不但結果保證精度,並且執行一萬次的時間不超過一秒。”

林鴻笑笑,對於他的誇讚並沒有什麼可得意的,這些都是最基礎的東西,只要理解了CPU的運作,多想一想基本上應該都能達到的,沒有好得意的。

廣永元這個時候出言問道:“阿鴻,我看得不是很懂,求平方根不是使用二分查找法麼?”

廣永元最擅長的並不是這個方面,他畢竟是野路子出身,基礎部分還不是很紮實,林鴻的這十行代碼,他竟然看得滿頭霧水。

他口中所說的二分查找,其實就是牛隊迭代法的實現方式之一。

林鴻點點頭:“算法的確是這個,不過在這裡,我使用二進制的移位代替了乘除。你看……”

林鴻見他聽得不是很懂,於是便重新調出編譯器,下斷點,跟蹤變量的內存賦值,一邊操作一邊解釋:

“在二進制層面上,從前向後決定每一個二進制位上是0還是1,因此,我們可以從最高位向最低位,依次上1,看乘積結果是否大於目標數,如果大於目標數了,那一位就保留0,這樣的情況下,我們上1就不用真的去計算乘法,而是將之前的結果,加上上1以前的數左移1所在位置那麼多位的兩倍,再加上上1的位置左移上1的位置……”

經過林鴻演示加解說,廣永元這才恍然大悟,後面的青年也釋然的點點頭,他雖然知道大致原理,可是在細節方面還是有些地方沒有理解,聽了林鴻完整的解釋這才瞭然。

也就是說,整個算法林鴻使用的都是二進制層面的運算,想不快都難,或者說,沒有哪個程序可以比他的這個算法實現更快了。

僅僅花了二十來秒的時間就搞定第一關,並且答案如此優秀,這可是之前從來沒有碰到過的。

林鴻本來還想着見識一下後面到底出什麼題目,不過黃越在看到林鴻的這個程序之後,便直接宣佈林鴻過關了,沒有必要再繼續闖關。

這個題目,實際上是黃越親自出的,他當初給了一個標準答案,也是二進制層面的實現,可是兩者相比之下,還是有着相當大的差距。

這雖然是最基礎的東西,但正是這些東西最是能看清楚一個人的水平。

很顯然,林鴻在這方面要比黃越更強,更別說,廣永元之前對他說,林鴻還是一個破解大師。

最終,林鴻順利地進入了他們的大本營,也就是一個相當大的大廳,不過在那裡,擺了上十臺各種品牌的電腦和服務器,看上去反而覺得有些擁擠。

大廳之中,有不少人,都是年輕人,他們見來了新成員,有的鼓掌,有的吹口哨,表示歡迎,不過,也僅此而已,例行歡迎儀式過後,他們便再次將注意力放在了自己的電腦顯示器上。

黃越給林鴻重點介紹了兩個人,一個叫袁樂邦,一個胖得連腰都彎不下的胖子,有着彌勒佛一樣的笑臉,擅長的領域正是遊戲破解,廣永元最想挖的人便是他。

另外一個是阮飛舟,帶着厚厚的黑框眼鏡,他擅長的是硬件破解,在他的桌子上,擺滿了各種電子元器件和最新的遊戲機,包括SONY的PS遊戲機和任天堂的GBA和NDS系列遊戲機。

在阮飛舟的身上,林鴻看到了顧偉的影子。

他們這個地方,並不是公司,甚至連一個團隊都稱不上,只是基於興趣聚集在一起,黃越爲他們免費提供場所,而這裡是鴨寮街,任何電器和元器件都能很方便地在這裡找到。

他們是一羣爲技術而癲狂的技術宅。

第300章 加起來一個半第545章 特殊拍賣品第632章 史上最貴比薩第198章 唯一倖免第60章 就這麼簡單第437章 美麗的大眼睛第340章 一笑傾人城第378章 小孫是誰第484章 好男人第261章 等着看好戲第508章 師兄師弟第326章 異常連接第389章 再想想辦法第628章 奪網計劃第81章 《創世紀》第105章 OPCODE第237章 MIT無線電協會的項目第642章 轉變第266章 奇怪的設備第571章 神秘賣家第682章 苦逼的蛙人第493章 地下一層第197章 愚人節禮物第96章 研究所所長第489章 虛驚一場第328章 腦子進水第566章 九龍堂的大哥第23章 轉變第506章 雙胞胎的決定第439章 像是打鼓第534章 世界級破解高手第291章 三色火科技第497章 形意對形意!第670章 絲綢之路第328章 腦子進水第350章 三種裁判第177章 再次見面第412章 有去無回第183章 破解教程第66章 球拍擊球第608章 查詢第322章 有些東西不能亂拿第146章 乒乓遊戲第619章 挑戰第137章 藍鷹第229章 發佈比特信使!第173章 撤退第329章 這個小滑頭第277章 自轉、公轉第562章 體驗瘋狂第295章 頭皮發炸第212章 停止侵權第663章 比特錄第136章 圖書館第117章 高手在民間第282章 對你有興趣第581章 左擁右抱第181章 hack!第186章 ssas第560章 特別邀請第55章 歐洲的天然屏障第296章 秘密組織第217章 美元美元第285章 十萬十年第44章 恐怖的直覺第638章 好東西哇第521章 一家三口?第496章 不打就閃開!第119章 偶像、醫院第581章 左擁右抱第532章 藍鳳凰第715章 波瀾壯闊第108章 隱藏在中關村的地下破解世界第85章 討厭無法解釋的事情第118章 重要名單第303章 完敗第158章 震驚全場第632章 史上最貴比薩第602章 測試版第599章 重見光明第642章 歡迎回家第326章 異常連接第377章 想死你了第635章 源能者第93章 挑戰第656章 進展第318章 上帝的手指第588章 打造第二個超腦第202章 火炬第517章 意外第129章 可編寫操作系統的語言第90章 熱心的庫克第273章 超腦系統的硬件基礎第245章 特斯拉第154章 逃亡中的黑客第286章 金礦第363章 克萊爾的遺憾第512章 戰楊風(一)第673章 荷爾蒙第168章 別犯傻
第300章 加起來一個半第545章 特殊拍賣品第632章 史上最貴比薩第198章 唯一倖免第60章 就這麼簡單第437章 美麗的大眼睛第340章 一笑傾人城第378章 小孫是誰第484章 好男人第261章 等着看好戲第508章 師兄師弟第326章 異常連接第389章 再想想辦法第628章 奪網計劃第81章 《創世紀》第105章 OPCODE第237章 MIT無線電協會的項目第642章 轉變第266章 奇怪的設備第571章 神秘賣家第682章 苦逼的蛙人第493章 地下一層第197章 愚人節禮物第96章 研究所所長第489章 虛驚一場第328章 腦子進水第566章 九龍堂的大哥第23章 轉變第506章 雙胞胎的決定第439章 像是打鼓第534章 世界級破解高手第291章 三色火科技第497章 形意對形意!第670章 絲綢之路第328章 腦子進水第350章 三種裁判第177章 再次見面第412章 有去無回第183章 破解教程第66章 球拍擊球第608章 查詢第322章 有些東西不能亂拿第146章 乒乓遊戲第619章 挑戰第137章 藍鷹第229章 發佈比特信使!第173章 撤退第329章 這個小滑頭第277章 自轉、公轉第562章 體驗瘋狂第295章 頭皮發炸第212章 停止侵權第663章 比特錄第136章 圖書館第117章 高手在民間第282章 對你有興趣第581章 左擁右抱第181章 hack!第186章 ssas第560章 特別邀請第55章 歐洲的天然屏障第296章 秘密組織第217章 美元美元第285章 十萬十年第44章 恐怖的直覺第638章 好東西哇第521章 一家三口?第496章 不打就閃開!第119章 偶像、醫院第581章 左擁右抱第532章 藍鳳凰第715章 波瀾壯闊第108章 隱藏在中關村的地下破解世界第85章 討厭無法解釋的事情第118章 重要名單第303章 完敗第158章 震驚全場第632章 史上最貴比薩第602章 測試版第599章 重見光明第642章 歡迎回家第326章 異常連接第377章 想死你了第635章 源能者第93章 挑戰第656章 進展第318章 上帝的手指第588章 打造第二個超腦第202章 火炬第517章 意外第129章 可編寫操作系統的語言第90章 熱心的庫克第273章 超腦系統的硬件基礎第245章 特斯拉第154章 逃亡中的黑客第286章 金礦第363章 克萊爾的遺憾第512章 戰楊風(一)第673章 荷爾蒙第168章 別犯傻