作者:介安藝
陳拙重新拿起桌上的小剪刀,對着窗戶的反光,小心地剪掉耳邊最後一根冒出來的碎髮。
“沒什麼。”
陳拙把剪刀收進抽屜裏。
“同名同姓的誤會,方老師跟我開玩笑呢。”
他拉開椅子坐下,把那張草稿紙拿過來。
“剛纔算到哪了?”
陳拙拿起紅筆,把話題拉回了正軌。
“如果整箱拿康師傅,超市老闆能送兩個滷蛋對吧?”
“對對對。”
楚戈立刻把注意力轉移了回來,猛點頭。
“老闆說買一箱送倆。”
楚戈伸手把計算器拿過來,看了一眼屏幕上的數字,然後抬頭看向對面緊閉的216宿舍的門。
“對了。”
楚戈咂了咂嘴。
“陸嘉那個死心眼,在對面爲了驗算你昨天畫的那個排隊論矩陣,一上午連窩都沒挪一下,剛纔我過去看他,眼圈都熬紅了。”
楚戈拿着自己手裏的圓珠筆,很自然地伸過去,在陳拙的草稿紙上把火腿腸的數量劃掉,重新改了個數字。
“這活兒太費腦子了。”
楚戈改完數字,用筆尖點了點紙面。
“晚上他那份泡麪裏,必須得多給他加兩根火腿腸,那個送的滷蛋也給他墊墊,咱們三個的份額先往下調調,省着點喫。”
陳拙看着楚戈改掉的數字,點了點頭。
“行,按你改的買。”
陳拙拿起紅筆,在修改過的數字旁邊打了個勾。
窗外,幾隻不怕人的麻雀落在光禿禿的樹枝上,噰喳喳地叫了兩聲,又撲騰着翅膀飛走了。
第126章 算我的
走廊裏那股揮之不去的84消毒液味道,總讓人覺得呼吸不太順暢。
215宿舍的門虛掩着,留了一條縫用來通風。
王大勇蹲在陽臺門邊的插座旁,眼睛死死盯着地上的那個不鏽鋼電熱杯。
杯子邊緣已經有些被燻黑了,裏頭的水剛燒開,咕嚕咕嚕地翻滾着,頂得那個輕飄飄的蓋子叮噹直響。
他手裏攥着兩包老壇酸菜面的料包,還沒撕開,大勇轉過頭,看了一眼坐在桌前的陳拙。
陳拙坐在書桌前,背對着陽臺。
桌上攤開着一本厚重的大開本俄文書,書頁微微泛黃。
宿舍裏很安靜,只能聽到電熱杯煮水的聲音,以及陳拙偶爾翻動書頁時發出的輕微摩擦聲。
他看書的速度並不快,雖然他之前就看過俄語的書,不過還是難免遇到一些難以理解的詞彙。
遇到長句或者生僻的專業詞彙,目光會停留在上面,手指習慣性地在桌面上輕輕敲擊兩下。
然後他會翻開旁邊的詞典,按着俄文字母的順序,耐心地把詞根找出來,在腦子裏過一遍它在物理語境下的準確含義。
這本蘇聯時期出版的《朗道理論物理學教程》,在物理學界出了名的難啃。
不僅因爲它的理論門檻高,更因爲作者有一個讓所有初學者抓狂的習慣。
在這位物理學大佬的筆下,推導公式的過程經常會被大幅度省略。
往往上一行還是個複雜的微積分偏導方程,中間空了一行,下一行直接跟了一句俄文的Очевидно(顯而易見),然後就是一個乾乾淨淨的結論。
陳拙看到這四個字的時候,總是有點無奈。
這位大佬不僅聰明,而且確實很會省排版費。
別人看到顯而易見可能會覺得痛苦或者跳過,但陳拙不會。
既然作者跳了步,那把這些步驟補齊,這對陳拙來說本身就是一種極好的思維消遣。
陳拙隨手從桌角的雜物堆裏抽過一張打印紙。
這是前兩天楚戈用來測試打印機打廢的一張代碼紙,正面印着密密麻麻的C語言函數,反面是完全空白的。
他拿起手邊那支黑色的鋼筆,拔下筆帽,在空白的那一面開始推導。
沒有任何停頓,也不需要打草稿。
那些複雜的流形邊界條件被他一層層剝開,代數矩陣在紙面上以一種極具對稱美感的方式鋪展,咬合。
就像是在完成一個挺有意思的拼圖遊戲。
大概寫了小半頁紙,推完最後一步的一個映射,得出的代數式剛好和書上的那個結論嚴絲合縫。
陳拙停下筆,看着紙面上的算式,心裏湧起一陣成就感。
他把鋼筆蓋上,放在一邊,伸手拿過旁邊那個水杯,喝了一口水。
水有些涼了,但他並不在意。
就在這個時候,對門216宿舍的門被人猛地一把拉開了。
緊接着,走廊裏傳來拖鞋踩在地板上急促的踩踏聲,直衝着215過來。
215的門被一把推開大半。
楚戈頂着一頭抓得像鳥窩一樣的亂髮,走了進來。
他眼眶下一圈烏青,臉色灰白,身上的T恤皺巴巴的,整個人透着一股剛從網吧熬了三天三夜出來的頹廢感和焦躁感。
隨着門被推開,216宿舍裏的聲音也清晰地傳了進來。
那是兩臺老舊的組裝電腦主機,機箱風扇因爲滿負荷咿D,發出猶如拖拉機上坡一般的巨大轟鳴聲。
在這片轟鳴聲中,還能聽到陸嘉在對面嘆氣的聲音。
“拙哥。”
楚戈一屁股坐在陳拙旁邊的空椅子上,身體往後一靠,仰着頭看着天花板,長長地嘆了一口氣。
陳拙把手裏的水杯放下,轉過頭看着他。
“卡住了?”
陳拙問得很理所當然,每次楚戈來找自己八成都是因爲這事。
王大勇蹲在陽臺邊,也轉過頭,舉着手裏一直沒撕開的調料包問。
“楚老闆,這水都快燒乾了,面到底下不下?剛纔去你們宿舍看,陸嘉連話都不跟我說,我都沒敢問他晚上要喫幾包。”
楚戈伸手用力搓了一把臉,聲音有氣無力。
“大勇,先把電拔了。別燒了。”楚戈苦笑了一聲,“這面今天晚上能不能喫得上,還是個問題。”
王大勇愣了一下,趕緊伸手把牆上的插頭拔了下來。
電熱杯裏翻滾的水面失去了熱源,漸漸恢復了平靜,只剩下一絲白色的熱氣往上冒。
“又出什麼事了?”
陳拙轉過身,面向楚戈,他順手把桌上的朗道合上,往旁邊推了推,騰出了一點交流的空間。
楚戈指了指對門216的方向,眉頭擰成了一個死結。
“死循環了,徹底卡死了。”
楚戈嘆了口氣。
“市裏那個搞醫藥批發的老闆,這陣子不是賺翻了嗎?各大醫院、鄉鎮衛生院還有連鎖藥房,天天找他要84消毒液,口罩和板藍根,他以前那個單機版的Access進銷存庫直接崩了,找咱們用SQL Server重新寫一套。”
楚戈越說越煩躁,從口袋裏摸出一根菸,想點,看了看陳拙,又煩躁地塞了回去。
“本來就是個簡單的進出庫,寫個前端連個庫就行,但是老闆非要加一個變態的調配邏輯。”
楚戈比劃着手勢。
“貨源緊缺,市級醫院的單子要絕對優先,然後是連鎖大藥房,最後纔是下面縣城的小运也荒馨研≡所全斷了,得留個百分之十的底倉給他們按比例分。”
陳拙安靜地聽完,沒有插話。
“陸嘉寫統籌算法的時候,用的是嵌套循環。”
楚戈揉了揉太陽穴,有點頭疼。
“如果來的是醫院訂單,走路線A,查庫存,扣減,如果是藥房,走路線B,查庫存,按比例扣減,邏輯上沒毛病。”
楚戈頓了頓,臉色變得很難看。
“但是今天晚上交工,我跟陸嘉倒了三萬條模擬數據進去做壓力測試,三萬個訂單帶着不同的優先級標籤同時擠進來,那些If和Else的條件判斷套了五六層。服務器要在後臺把這幾萬個訂單反覆遍歷,比對,排序。”
“然後呢?”陳拙問。
“然後CPU佔用率直接飆到百分之百,內存喫滿,機箱風扇轉得快冒煙了,系統死機。”
楚戈靠在椅背上。
“這算法的時間複雜度太高了,我和陸嘉在對面調了一下午的參數,怎麼改最後都是死循環,老闆說今晚必須看到跑通,要是扛不住這三萬條併發,萬把塊錢的尾款就沒了。”
楚戈說完,眼巴巴地看着陳拙。
“拙哥,你腦子好使,數學底子厚,你幫着捋捋,這底層邏輯到底是哪出毛病了?”
陳拙坐在椅子上,目光落在桌面的那本《朗道》上,靜靜地思考了幾秒鐘。
他聽懂了。
楚戈和陸嘉遇到的問題,在於他們試圖用最直接,最笨重的窮舉法去走迷宮。
在數據量小的時候,挨個判斷身份,排隊,分配,計算機算得過來。
但數據量一旦呈指數級爆發,嵌套循環就會變成一個計算黑洞。
這和他之前看普林斯頓團隊那篇論文時遇到的死結,在純邏輯上是同構的。
德里安的團隊試圖用連續的時空微積分去跨越奇點,結果遇到了發散,楚戈他們試圖用線性的條件判斷去處理龐大的交叉訂單,結果遇到了內存溢出。
陳拙點了點頭。
“思路從一開始就偏了。”
陳拙語氣平穩。
楚戈愣住了,半張着嘴。
“偏了?按條件判斷分配,這不是編程書上教的最穩妥的統籌方法嗎?”
陳拙沒急着解釋。
他伸手把剛纔那張寫滿了物理推導公式的草稿紙拿了過來。
他看了一眼紙面上密密麻麻的算式,那是剛剛補全的朗道理論,陳拙很自然地把紙翻了個面,露出印着廢棄C語言代碼的那一面。
這上面的代碼行距很寬,中間有很多留白的區域。
在空白處,用鋼筆輕輕點了一個黑色的墨點。
“你們把這些訂單當成了排隊買票的人。”
陳拙一邊畫,一邊說。
“隊伍太長,你們就在檢票口設了三個不同的通道,每過來一個人,你們都要問一遍:你是哪裏的?然後再決定讓他走哪個通道,人一多,檢票口就徹底堵死了。”
楚戈湊近了點,盯着陳拙筆尖下那個黑點。
“那不排隊怎麼分?”楚戈問。
陳拙在那個黑點旁邊,又畫了幾個相隔很遠的黑點,然後用直線把它們連接起來。
“當成一個個獨立的狀態節點。”
陳拙手腕微轉,在紙上畫出了一個二分圖的結構,而不是楚戈說的樹狀分支。
上一篇:华娱:牢景,你要剧本不要?!
下一篇:无敌镖人,开局护送灭世帝女!