我的智商逐年遞增 第193章

作者:介安藝

  陳拙重新拿起桌上的小剪刀,對着窗戶的反光,小心地剪掉耳邊最後一根冒出來的碎髮。

  “沒什麼。”

  陳拙把剪刀收進抽屜裏。

  “同名同姓的誤會,方老師跟我開玩笑呢。”

  他拉開椅子坐下,把那張草稿紙拿過來。

  “剛纔算到哪了?”

  陳拙拿起紅筆,把話題拉回了正軌。

  “如果整箱拿康師傅,超市老闆能送兩個滷蛋對吧?”

  “對對對。”

  楚戈立刻把注意力轉移了回來,猛點頭。

  “老闆說買一箱送倆。”

  楚戈伸手把計算器拿過來,看了一眼屏幕上的數字,然後抬頭看向對面緊閉的216宿舍的門。

  “對了。”

  楚戈咂了咂嘴。

  “陸嘉那個死心眼,在對面爲了驗算你昨天畫的那個排隊論矩陣,一上午連窩都沒挪一下,剛纔我過去看他,眼圈都熬紅了。”

  楚戈拿着自己手裏的圓珠筆,很自然地伸過去,在陳拙的草稿紙上把火腿腸的數量劃掉,重新改了個數字。

  “這活兒太費腦子了。”

  楚戈改完數字,用筆尖點了點紙面。

  “晚上他那份泡麪裏,必須得多給他加兩根火腿腸,那個送的滷蛋也給他墊墊,咱們三個的份額先往下調調,省着點喫。”

  陳拙看着楚戈改掉的數字,點了點頭。

  “行,按你改的買。”

  陳拙拿起紅筆,在修改過的數字旁邊打了個勾。

  窗外,幾隻不怕人的麻雀落在光禿禿的樹枝上,噰喳喳地叫了兩聲,又撲騰着翅膀飛走了。

第126章 算我的

  走廊裏那股揮之不去的84消毒液味道,總讓人覺得呼吸不太順暢。

  215宿舍的門虛掩着,留了一條縫用來通風。

  王大勇蹲在陽臺門邊的插座旁,眼睛死死盯着地上的那個不鏽鋼電熱杯。

  杯子邊緣已經有些被燻黑了,裏頭的水剛燒開,咕嚕咕嚕地翻滾着,頂得那個輕飄飄的蓋子叮噹直響。

  他手裏攥着兩包老壇酸菜面的料包,還沒撕開,大勇轉過頭,看了一眼坐在桌前的陳拙。

  陳拙坐在書桌前,背對着陽臺。

  桌上攤開着一本厚重的大開本俄文書,書頁微微泛黃。

  宿舍裏很安靜,只能聽到電熱杯煮水的聲音,以及陳拙偶爾翻動書頁時發出的輕微摩擦聲。

  他看書的速度並不快,雖然他之前就看過俄語的書,不過還是難免遇到一些難以理解的詞彙。

  遇到長句或者生僻的專業詞彙,目光會停留在上面,手指習慣性地在桌面上輕輕敲擊兩下。

  然後他會翻開旁邊的詞典,按着俄文字母的順序,耐心地把詞根找出來,在腦子裏過一遍它在物理語境下的準確含義。

  這本蘇聯時期出版的《朗道理論物理學教程》,在物理學界出了名的難啃。

  不僅因爲它的理論門檻高,更因爲作者有一個讓所有初學者抓狂的習慣。

  在這位物理學大佬的筆下,推導公式的過程經常會被大幅度省略。

  往往上一行還是個複雜的微積分偏導方程,中間空了一行,下一行直接跟了一句俄文的Очевидно(顯而易見),然後就是一個乾乾淨淨的結論。

  陳拙看到這四個字的時候,總是有點無奈。

  這位大佬不僅聰明,而且確實很會省排版費。

  別人看到顯而易見可能會覺得痛苦或者跳過,但陳拙不會。

  既然作者跳了步,那把這些步驟補齊,這對陳拙來說本身就是一種極好的思維消遣。

  陳拙隨手從桌角的雜物堆裏抽過一張打印紙。

  這是前兩天楚戈用來測試打印機打廢的一張代碼紙,正面印着密密麻麻的C語言函數,反面是完全空白的。

  他拿起手邊那支黑色的鋼筆,拔下筆帽,在空白的那一面開始推導。

  沒有任何停頓,也不需要打草稿。

  那些複雜的流形邊界條件被他一層層剝開,代數矩陣在紙面上以一種極具對稱美感的方式鋪展,咬合。

  就像是在完成一個挺有意思的拼圖遊戲。

  大概寫了小半頁紙,推完最後一步的一個映射,得出的代數式剛好和書上的那個結論嚴絲合縫。

  陳拙停下筆,看着紙面上的算式,心裏湧起一陣成就感。

  他把鋼筆蓋上,放在一邊,伸手拿過旁邊那個水杯,喝了一口水。

  水有些涼了,但他並不在意。

  就在這個時候,對門216宿舍的門被人猛地一把拉開了。

  緊接着,走廊裏傳來拖鞋踩在地板上急促的踩踏聲,直衝着215過來。

  215的門被一把推開大半。

  楚戈頂着一頭抓得像鳥窩一樣的亂髮,走了進來。

  他眼眶下一圈烏青,臉色灰白,身上的T恤皺巴巴的,整個人透着一股剛從網吧熬了三天三夜出來的頹廢感和焦躁感。

  隨着門被推開,216宿舍裏的聲音也清晰地傳了進來。

  那是兩臺老舊的組裝電腦主機,機箱風扇因爲滿負荷咿D,發出猶如拖拉機上坡一般的巨大轟鳴聲。

  在這片轟鳴聲中,還能聽到陸嘉在對面嘆氣的聲音。

  “拙哥。”

  楚戈一屁股坐在陳拙旁邊的空椅子上,身體往後一靠,仰着頭看着天花板,長長地嘆了一口氣。

  陳拙把手裏的水杯放下,轉過頭看着他。

  “卡住了?”

  陳拙問得很理所當然,每次楚戈來找自己八成都是因爲這事。

  王大勇蹲在陽臺邊,也轉過頭,舉着手裏一直沒撕開的調料包問。

  “楚老闆,這水都快燒乾了,面到底下不下?剛纔去你們宿舍看,陸嘉連話都不跟我說,我都沒敢問他晚上要喫幾包。”

  楚戈伸手用力搓了一把臉,聲音有氣無力。

  “大勇,先把電拔了。別燒了。”楚戈苦笑了一聲,“這面今天晚上能不能喫得上,還是個問題。”

  王大勇愣了一下,趕緊伸手把牆上的插頭拔了下來。

  電熱杯裏翻滾的水面失去了熱源,漸漸恢復了平靜,只剩下一絲白色的熱氣往上冒。

  “又出什麼事了?”

  陳拙轉過身,面向楚戈,他順手把桌上的朗道合上,往旁邊推了推,騰出了一點交流的空間。

  楚戈指了指對門216的方向,眉頭擰成了一個死結。

  “死循環了,徹底卡死了。”

  楚戈嘆了口氣。

  “市裏那個搞醫藥批發的老闆,這陣子不是賺翻了嗎?各大醫院、鄉鎮衛生院還有連鎖藥房,天天找他要84消毒液,口罩和板藍根,他以前那個單機版的Access進銷存庫直接崩了,找咱們用SQL Server重新寫一套。”

  楚戈越說越煩躁,從口袋裏摸出一根菸,想點,看了看陳拙,又煩躁地塞了回去。

  “本來就是個簡單的進出庫,寫個前端連個庫就行,但是老闆非要加一個變態的調配邏輯。”

  楚戈比劃着手勢。

  “貨源緊缺,市級醫院的單子要絕對優先,然後是連鎖大藥房,最後纔是下面縣城的小运也荒馨研≡所全斷了,得留個百分之十的底倉給他們按比例分。”

  陳拙安靜地聽完,沒有插話。

  “陸嘉寫統籌算法的時候,用的是嵌套循環。”

  楚戈揉了揉太陽穴,有點頭疼。

  “如果來的是醫院訂單,走路線A,查庫存,扣減,如果是藥房,走路線B,查庫存,按比例扣減,邏輯上沒毛病。”

  楚戈頓了頓,臉色變得很難看。

  “但是今天晚上交工,我跟陸嘉倒了三萬條模擬數據進去做壓力測試,三萬個訂單帶着不同的優先級標籤同時擠進來,那些If和Else的條件判斷套了五六層。服務器要在後臺把這幾萬個訂單反覆遍歷,比對,排序。”

  “然後呢?”陳拙問。

  “然後CPU佔用率直接飆到百分之百,內存喫滿,機箱風扇轉得快冒煙了,系統死機。”

  楚戈靠在椅背上。

  “這算法的時間複雜度太高了,我和陸嘉在對面調了一下午的參數,怎麼改最後都是死循環,老闆說今晚必須看到跑通,要是扛不住這三萬條併發,萬把塊錢的尾款就沒了。”

  楚戈說完,眼巴巴地看着陳拙。

  “拙哥,你腦子好使,數學底子厚,你幫着捋捋,這底層邏輯到底是哪出毛病了?”

  陳拙坐在椅子上,目光落在桌面的那本《朗道》上,靜靜地思考了幾秒鐘。

  他聽懂了。

  楚戈和陸嘉遇到的問題,在於他們試圖用最直接,最笨重的窮舉法去走迷宮。

  在數據量小的時候,挨個判斷身份,排隊,分配,計算機算得過來。

  但數據量一旦呈指數級爆發,嵌套循環就會變成一個計算黑洞。

  這和他之前看普林斯頓團隊那篇論文時遇到的死結,在純邏輯上是同構的。

  德里安的團隊試圖用連續的時空微積分去跨越奇點,結果遇到了發散,楚戈他們試圖用線性的條件判斷去處理龐大的交叉訂單,結果遇到了內存溢出。

  陳拙點了點頭。

  “思路從一開始就偏了。”

  陳拙語氣平穩。

  楚戈愣住了,半張着嘴。

  “偏了?按條件判斷分配,這不是編程書上教的最穩妥的統籌方法嗎?”

  陳拙沒急着解釋。

  他伸手把剛纔那張寫滿了物理推導公式的草稿紙拿了過來。

  他看了一眼紙面上密密麻麻的算式,那是剛剛補全的朗道理論,陳拙很自然地把紙翻了個面,露出印着廢棄C語言代碼的那一面。

  這上面的代碼行距很寬,中間有很多留白的區域。

  在空白處,用鋼筆輕輕點了一個黑色的墨點。

  “你們把這些訂單當成了排隊買票的人。”

  陳拙一邊畫,一邊說。

  “隊伍太長,你們就在檢票口設了三個不同的通道,每過來一個人,你們都要問一遍:你是哪裏的?然後再決定讓他走哪個通道,人一多,檢票口就徹底堵死了。”

  楚戈湊近了點,盯着陳拙筆尖下那個黑點。

  “那不排隊怎麼分?”楚戈問。

  陳拙在那個黑點旁邊,又畫了幾個相隔很遠的黑點,然後用直線把它們連接起來。

  “當成一個個獨立的狀態節點。”

  陳拙手腕微轉,在紙上畫出了一個二分圖的結構,而不是楚戈說的樹狀分支。