第1章 算法算箭道,我救了朱元璋
林默最后看到的,是屏幕上滾動的“Error 500: Internal ****** Error”。
凌晨三點,寫字樓的燈光白得刺眼。
他試圖抬手去按Ctrl+S,指尖卻只碰到一片虛空。
心臟像被一只無形的手攥緊,然后——驟停。
再睜眼時,沒有天花板,沒有顯示器。
有的是鋪天蓋地的血腥味。
鼻腔里灌滿了鐵銹、泥土和馬糞燒焦的混合氣體,耳朵被震耳欲聾的喊殺聲、金屬碰撞聲和一種尖銳的破空聲填滿。
那聲音……是箭矢。
“發(fā)什么呆!
找死嗎?!”
一個粗糲的嗓音炸響在耳邊,緊接著一股巨力撞上林默的肩膀。
他踉蹌著向前撲倒,下巴重重磕在硬土上,牙齒震得發(fā)麻。
趴在地上,他看見了。
黑壓壓的、穿著皮甲或破爛布衣的古代士兵,如同兩股渾濁的潮水,狠狠撞在一起。
刀光閃過,血花迸濺。
更遠(yuǎn)處,一面殘破的“元”字大旗下,騎著**騎兵正揮舞彎刀,如同收割麥子般砍殺著另一群衣衫襤褸、卻死戰(zhàn)不退的漢子。
那些被追殺的人,手里拿著鋤頭、木棍,甚至還有菜刀。
“我……穿、穿越了?”
林默的大腦CPU差點當(dāng)場燒了。
但多年處理線上生產(chǎn)環(huán)境緊急故障的職業(yè)本能,強行壓下了恐慌。
數(shù)據(jù),需要數(shù)據(jù)!
掃描環(huán)境:· 地點:山谷地帶,三面環(huán)土坡,一面是開闊地。
· 敵我識別:穿統(tǒng)一皮甲、陣型相對嚴(yán)整的是“元兵”;衣衫雜亂、被分割包圍的是“義軍”。
· 威脅評估:最大威脅來自元兵陣中那一排**手,正在張弓搭箭。
而自己,好死不死,正站在雙方**線的邊緣,更靠近義軍潰散的方向。
就在他快速分析時,元兵陣中一聲令下。
“放箭!”
嗡——那不是一支箭的聲音,是數(shù)十支、上百支箭矢同時離弦的蜂鳴。
它們劃破空氣,帶著死亡的尖嘯,朝著潰散的義軍——也朝著林默所在的方向——覆蓋而來。
時間仿佛被拉長。
林默眼睜睜看著那些黑點在空中迅速放大,軌跡交錯,像一張死亡的大網(wǎng)。
他的身體僵住了,但大腦卻像超頻的服務(wù)器,瘋狂運轉(zhuǎn):彈道分析、落點預(yù)測、生存概率計算……等等。
背包!
他背上那個跟他一起加了三年的班、陪他穿越了不知多少時空的黑色程序員雙肩包,此時正沉甸甸地壓著。
林默幾乎是連滾帶爬地轉(zhuǎn)身,手指顫抖著扯開拉鏈。
熟悉的隔層,熟悉的貼紙——“Git is Love”、“Hello World”、“這個需求做不了”。
以及,那臺貼滿了各種技術(shù)大會標(biāo)簽、外殼有些磨損的筆記本電腦。
電量:87%。
“有電!”
林默的心臟狂跳起來,比剛才面對箭雨時跳得還猛。
他猛地掀開屏幕,按下電源鍵。
熟悉的啟動LOGO亮起,那微弱的光,在這片血腥的古代戰(zhàn)場上,顯得如此詭異又如此……救命。
他沒有Wi-Fi,沒有4G,但他有本地文件。
手指在觸摸板上滑動,精準(zhǔn)地打開一個名為“Tools”的文件夾,雙擊一個叫 “arrow_trajectory.py” 的文件。
這是他之前出于興趣,用Python寫的一個簡易拋物線預(yù)測腳本,原本是用來模擬游戲里投擲物軌跡的。
腳本界面彈出,需要輸入?yún)?shù)。
林默抬起頭,強迫自己冷靜。
箭雨還在飛,但還有大概兩秒落地。
他的眼睛成了最原始的傳感器:· 風(fēng)速:憑臉上拂過的氣流,估算約 3-4米/秒,東南向。
輸入。
· 箭矢初速:看元兵用的弓,不是重弩,估計 40-50米/秒。
取中值45,輸入。
· 發(fā)射仰角:目測約 30度。
輸入。
· 自身與目標(biāo)區(qū)域坐標(biāo):快速估算相對位置,輸入近似值。
敲下回車。
屏幕上,黑色的命令行窗口開始瘋狂刷出數(shù)據(jù)。
下一秒,一個簡陋的圖形窗口彈出。
以林默估算的自身位置為中心,一個半透明的紅**域在地圖上蔓延開來——那是根據(jù)輸入?yún)?shù)計算出的,箭矢最可能覆蓋的“高危區(qū)”。
而在這片刺目的紅色邊緣,靠近東南方向土坡的位置,有一小塊頑固的綠**域。
那是算法認(rèn)為的,“箭矢落點概率低于5%”的安全區(qū)。
方位:東南偏東,約37度角。
距離:約十五步。
“就是那里!”
林默猛地抬頭,目光瞬間鎖定了綠**域指向的位置——一片長著幾叢低矮灌木的土坡凹陷處。
同時,他的眼角余光也瞥見了離他不遠(yuǎn)、正被幾名親兵拖著向后撤的一個年輕漢子。
那漢子滿臉血污,相貌奇?zhèn)?,眉宇間有股子草莽英氣,**嘶力竭地指揮著零散的抵抗,但眼看就要被潰兵沖散。
朱……朱**?!
林默腦子里“轟”的一聲。
元末,戰(zhàn)場,被元兵追殺的義軍,長相奇?zhèn)サ哪贻p頭領(lǐng)……所有線索瞬間串聯(lián)成一條冰冷的邏輯鏈。
他沒時間驗證了。
箭矢的尖嘯聲己到頭頂。
林默爆發(fā)出平生最快的速度,像一道離弦的箭(雖然方向完全相反),朝著那個年輕漢子沖去。
他撞開一個擋路的潰兵,在對方驚怒的罵聲中,一把死死拽住了那漢子的胳膊。
“你干什——!”
漢子又驚又怒,回頭瞪他。
“往東南37度跑!
現(xiàn)在!
那里是箭雨盲區(qū)!”
林默用盡力氣嘶吼,聲音都變了調(diào),同時另一只手指向那片綠**域?qū)?yīng)的土坡。
“瘋子!
胡言亂語什么‘多、多少度’?!”
漢子身邊的親兵就要拔刀。
但就在這一瞬間——噗!
噗噗噗!
第一波箭矢落地了。
如同死神的鐮刀,狠狠砸進人群。
慘叫聲瞬間炸開。
一支箭擦著那漢子的頭盔飛過,帶走幾縷頭發(fā);另一支箭射穿了剛才擋在林默面前的潰兵的大腿,鮮血噴濺。
親眼看到箭矢幾乎貼著臉飛過,和只聽聲音完全是兩種體驗。
那滿臉血污的漢子瞳孔驟縮,再看向林默時,眼中的驚怒瞬間被一股狠厲的決斷取代。
他不知道“37度”是什么,但他看到了林默指的方向,也看到了那個方向……暫時沒有箭矢落下。
“信他一次!”
漢子猛地吼道,反手拉住林默,“跟我來!”
一群人在箭雨間歇的寶貴幾秒內(nèi),連滾帶爬地?fù)湎驏|南方的土坡凹陷處。
林默幾乎是被人架著跑的,懷里還死死抱著他那臺發(fā)光的筆記本。
他們剛撲進灌木叢后的凹陷——第二波、第三波箭矢如同暴雨般傾瀉在他們剛才站立及周圍的所有區(qū)域。
泥土被炸開,**被釘穿,哀嚎遍野。
而他們躲藏的這塊凹陷,就像怒海中的一塊礁石,奇跡般地只有零星的幾支箭歪歪斜斜地扎在邊緣。
死里逃生。
土坡后,喘息聲如同破舊的風(fēng)箱。
朱**(林默現(xiàn)在幾乎能肯定了)靠在土壁上,胸膛劇烈起伏,血污下的眼睛卻銳利如鷹,死死盯住了被親兵護在中間、同樣狼狽不堪的林默。
或者說,盯住了林默懷里那個還在幽幽發(fā)光、屏幕上滿是古怪符號和圖形的“鐵盒子”。
“你……”朱**的聲音沙啞,帶著劫后余生的悸動和濃濃的驚疑,“究竟是……何人?
方才,你怎知……箭往哪射?”
林默喘著粗氣,感受著心臟在胸腔里瘋狂擂鼓。
他低頭看了一眼屏幕,拋物線預(yù)測的界面還沒關(guān),那個綠色的安全區(qū)在血腥的戰(zhàn)場上顯得如此諷刺。
“我……”他張了張嘴,干澀的喉嚨發(fā)不出完整的聲音。
怎么解釋?
說我是程序員,這是算法?
說你們都是我歷史書里的***?
他最終只是拍了拍筆記本電腦冰冷的外殼,用盡可能平靜(但依然帶著顫音)的語氣,吐出了那句注定要讓這個時代的人困惑許久的話:“不是我知道?!?br>
“是……算法知道?!?br>
朱**的眉頭緊緊皺起,顯然完全沒聽懂這個詞。
但他看了看周圍安然無恙的自己和幾個核心親兵,又看了看凹陷外那片被箭矢釘滿的死亡地帶,眼中的探究和震驚幾乎要溢出來。
就在這時,林默懷里的筆記本屏幕忽然自動切換了界面。
一個被他設(shè)為開機自啟動的Excel文件彈了出來——《元末勢力分布圖(簡易版).xlsx》。
這是林默穿越前正在整理的一個興趣文檔,里面用極其簡化的方式標(biāo)記了元末幾大勢力的核心控制區(qū)。
此刻,文件中央,一個標(biāo)記為“濠州”的單元格正在微微閃爍,而旁邊一個不起眼的角落,電池圖標(biāo)旁的數(shù)值,己經(jīng)從 87%,悄然掉到了 80%。
電量,在流逝。
林默盯著那個數(shù)字,又抬頭看了看眼前這個滿臉血污、眼神如狼的未來洪武大帝,再聽聽凹陷外并未停歇、反而越來越近的喊殺聲和馬蹄聲。
一個無比清晰、無比沉重的念頭,砸進了他的腦海:這破地方……沒Wi-Fi,沒運維,沒備份。
而且看起來,不寫點能跑的“代碼”……是真會死人的。
(第一章完)下章預(yù)告糧草只夠三天?
賬目一團亂麻?
林默默默打開了Excel:“別吵,讓我建個表?!?br>
當(dāng)“=”號在這個時空第一次被用于管理軍隊糧倉時,朱**的天下,從此進入了“數(shù)據(jù)驅(qū)動”的時代。
---
凌晨三點,寫字樓的燈光白得刺眼。
他試圖抬手去按Ctrl+S,指尖卻只碰到一片虛空。
心臟像被一只無形的手攥緊,然后——驟停。
再睜眼時,沒有天花板,沒有顯示器。
有的是鋪天蓋地的血腥味。
鼻腔里灌滿了鐵銹、泥土和馬糞燒焦的混合氣體,耳朵被震耳欲聾的喊殺聲、金屬碰撞聲和一種尖銳的破空聲填滿。
那聲音……是箭矢。
“發(fā)什么呆!
找死嗎?!”
一個粗糲的嗓音炸響在耳邊,緊接著一股巨力撞上林默的肩膀。
他踉蹌著向前撲倒,下巴重重磕在硬土上,牙齒震得發(fā)麻。
趴在地上,他看見了。
黑壓壓的、穿著皮甲或破爛布衣的古代士兵,如同兩股渾濁的潮水,狠狠撞在一起。
刀光閃過,血花迸濺。
更遠(yuǎn)處,一面殘破的“元”字大旗下,騎著**騎兵正揮舞彎刀,如同收割麥子般砍殺著另一群衣衫襤褸、卻死戰(zhàn)不退的漢子。
那些被追殺的人,手里拿著鋤頭、木棍,甚至還有菜刀。
“我……穿、穿越了?”
林默的大腦CPU差點當(dāng)場燒了。
但多年處理線上生產(chǎn)環(huán)境緊急故障的職業(yè)本能,強行壓下了恐慌。
數(shù)據(jù),需要數(shù)據(jù)!
掃描環(huán)境:· 地點:山谷地帶,三面環(huán)土坡,一面是開闊地。
· 敵我識別:穿統(tǒng)一皮甲、陣型相對嚴(yán)整的是“元兵”;衣衫雜亂、被分割包圍的是“義軍”。
· 威脅評估:最大威脅來自元兵陣中那一排**手,正在張弓搭箭。
而自己,好死不死,正站在雙方**線的邊緣,更靠近義軍潰散的方向。
就在他快速分析時,元兵陣中一聲令下。
“放箭!”
嗡——那不是一支箭的聲音,是數(shù)十支、上百支箭矢同時離弦的蜂鳴。
它們劃破空氣,帶著死亡的尖嘯,朝著潰散的義軍——也朝著林默所在的方向——覆蓋而來。
時間仿佛被拉長。
林默眼睜睜看著那些黑點在空中迅速放大,軌跡交錯,像一張死亡的大網(wǎng)。
他的身體僵住了,但大腦卻像超頻的服務(wù)器,瘋狂運轉(zhuǎn):彈道分析、落點預(yù)測、生存概率計算……等等。
背包!
他背上那個跟他一起加了三年的班、陪他穿越了不知多少時空的黑色程序員雙肩包,此時正沉甸甸地壓著。
林默幾乎是連滾帶爬地轉(zhuǎn)身,手指顫抖著扯開拉鏈。
熟悉的隔層,熟悉的貼紙——“Git is Love”、“Hello World”、“這個需求做不了”。
以及,那臺貼滿了各種技術(shù)大會標(biāo)簽、外殼有些磨損的筆記本電腦。
電量:87%。
“有電!”
林默的心臟狂跳起來,比剛才面對箭雨時跳得還猛。
他猛地掀開屏幕,按下電源鍵。
熟悉的啟動LOGO亮起,那微弱的光,在這片血腥的古代戰(zhàn)場上,顯得如此詭異又如此……救命。
他沒有Wi-Fi,沒有4G,但他有本地文件。
手指在觸摸板上滑動,精準(zhǔn)地打開一個名為“Tools”的文件夾,雙擊一個叫 “arrow_trajectory.py” 的文件。
這是他之前出于興趣,用Python寫的一個簡易拋物線預(yù)測腳本,原本是用來模擬游戲里投擲物軌跡的。
腳本界面彈出,需要輸入?yún)?shù)。
林默抬起頭,強迫自己冷靜。
箭雨還在飛,但還有大概兩秒落地。
他的眼睛成了最原始的傳感器:· 風(fēng)速:憑臉上拂過的氣流,估算約 3-4米/秒,東南向。
輸入。
· 箭矢初速:看元兵用的弓,不是重弩,估計 40-50米/秒。
取中值45,輸入。
· 發(fā)射仰角:目測約 30度。
輸入。
· 自身與目標(biāo)區(qū)域坐標(biāo):快速估算相對位置,輸入近似值。
敲下回車。
屏幕上,黑色的命令行窗口開始瘋狂刷出數(shù)據(jù)。
下一秒,一個簡陋的圖形窗口彈出。
以林默估算的自身位置為中心,一個半透明的紅**域在地圖上蔓延開來——那是根據(jù)輸入?yún)?shù)計算出的,箭矢最可能覆蓋的“高危區(qū)”。
而在這片刺目的紅色邊緣,靠近東南方向土坡的位置,有一小塊頑固的綠**域。
那是算法認(rèn)為的,“箭矢落點概率低于5%”的安全區(qū)。
方位:東南偏東,約37度角。
距離:約十五步。
“就是那里!”
林默猛地抬頭,目光瞬間鎖定了綠**域指向的位置——一片長著幾叢低矮灌木的土坡凹陷處。
同時,他的眼角余光也瞥見了離他不遠(yuǎn)、正被幾名親兵拖著向后撤的一個年輕漢子。
那漢子滿臉血污,相貌奇?zhèn)?,眉宇間有股子草莽英氣,**嘶力竭地指揮著零散的抵抗,但眼看就要被潰兵沖散。
朱……朱**?!
林默腦子里“轟”的一聲。
元末,戰(zhàn)場,被元兵追殺的義軍,長相奇?zhèn)サ哪贻p頭領(lǐng)……所有線索瞬間串聯(lián)成一條冰冷的邏輯鏈。
他沒時間驗證了。
箭矢的尖嘯聲己到頭頂。
林默爆發(fā)出平生最快的速度,像一道離弦的箭(雖然方向完全相反),朝著那個年輕漢子沖去。
他撞開一個擋路的潰兵,在對方驚怒的罵聲中,一把死死拽住了那漢子的胳膊。
“你干什——!”
漢子又驚又怒,回頭瞪他。
“往東南37度跑!
現(xiàn)在!
那里是箭雨盲區(qū)!”
林默用盡力氣嘶吼,聲音都變了調(diào),同時另一只手指向那片綠**域?qū)?yīng)的土坡。
“瘋子!
胡言亂語什么‘多、多少度’?!”
漢子身邊的親兵就要拔刀。
但就在這一瞬間——噗!
噗噗噗!
第一波箭矢落地了。
如同死神的鐮刀,狠狠砸進人群。
慘叫聲瞬間炸開。
一支箭擦著那漢子的頭盔飛過,帶走幾縷頭發(fā);另一支箭射穿了剛才擋在林默面前的潰兵的大腿,鮮血噴濺。
親眼看到箭矢幾乎貼著臉飛過,和只聽聲音完全是兩種體驗。
那滿臉血污的漢子瞳孔驟縮,再看向林默時,眼中的驚怒瞬間被一股狠厲的決斷取代。
他不知道“37度”是什么,但他看到了林默指的方向,也看到了那個方向……暫時沒有箭矢落下。
“信他一次!”
漢子猛地吼道,反手拉住林默,“跟我來!”
一群人在箭雨間歇的寶貴幾秒內(nèi),連滾帶爬地?fù)湎驏|南方的土坡凹陷處。
林默幾乎是被人架著跑的,懷里還死死抱著他那臺發(fā)光的筆記本。
他們剛撲進灌木叢后的凹陷——第二波、第三波箭矢如同暴雨般傾瀉在他們剛才站立及周圍的所有區(qū)域。
泥土被炸開,**被釘穿,哀嚎遍野。
而他們躲藏的這塊凹陷,就像怒海中的一塊礁石,奇跡般地只有零星的幾支箭歪歪斜斜地扎在邊緣。
死里逃生。
土坡后,喘息聲如同破舊的風(fēng)箱。
朱**(林默現(xiàn)在幾乎能肯定了)靠在土壁上,胸膛劇烈起伏,血污下的眼睛卻銳利如鷹,死死盯住了被親兵護在中間、同樣狼狽不堪的林默。
或者說,盯住了林默懷里那個還在幽幽發(fā)光、屏幕上滿是古怪符號和圖形的“鐵盒子”。
“你……”朱**的聲音沙啞,帶著劫后余生的悸動和濃濃的驚疑,“究竟是……何人?
方才,你怎知……箭往哪射?”
林默喘著粗氣,感受著心臟在胸腔里瘋狂擂鼓。
他低頭看了一眼屏幕,拋物線預(yù)測的界面還沒關(guān),那個綠色的安全區(qū)在血腥的戰(zhàn)場上顯得如此諷刺。
“我……”他張了張嘴,干澀的喉嚨發(fā)不出完整的聲音。
怎么解釋?
說我是程序員,這是算法?
說你們都是我歷史書里的***?
他最終只是拍了拍筆記本電腦冰冷的外殼,用盡可能平靜(但依然帶著顫音)的語氣,吐出了那句注定要讓這個時代的人困惑許久的話:“不是我知道?!?br>
“是……算法知道?!?br>
朱**的眉頭緊緊皺起,顯然完全沒聽懂這個詞。
但他看了看周圍安然無恙的自己和幾個核心親兵,又看了看凹陷外那片被箭矢釘滿的死亡地帶,眼中的探究和震驚幾乎要溢出來。
就在這時,林默懷里的筆記本屏幕忽然自動切換了界面。
一個被他設(shè)為開機自啟動的Excel文件彈了出來——《元末勢力分布圖(簡易版).xlsx》。
這是林默穿越前正在整理的一個興趣文檔,里面用極其簡化的方式標(biāo)記了元末幾大勢力的核心控制區(qū)。
此刻,文件中央,一個標(biāo)記為“濠州”的單元格正在微微閃爍,而旁邊一個不起眼的角落,電池圖標(biāo)旁的數(shù)值,己經(jīng)從 87%,悄然掉到了 80%。
電量,在流逝。
林默盯著那個數(shù)字,又抬頭看了看眼前這個滿臉血污、眼神如狼的未來洪武大帝,再聽聽凹陷外并未停歇、反而越來越近的喊殺聲和馬蹄聲。
一個無比清晰、無比沉重的念頭,砸進了他的腦海:這破地方……沒Wi-Fi,沒運維,沒備份。
而且看起來,不寫點能跑的“代碼”……是真會死人的。
(第一章完)下章預(yù)告糧草只夠三天?
賬目一團亂麻?
林默默默打開了Excel:“別吵,讓我建個表?!?br>
當(dāng)“=”號在這個時空第一次被用于管理軍隊糧倉時,朱**的天下,從此進入了“數(shù)據(jù)驅(qū)動”的時代。
---
閱讀下一章(解鎖全文)
點擊即可暢讀完整版全部內(nèi)容
相關(guān)書籍
友情鏈接