首頁 短篇

編程代碼之戰(zhàn)

第三章 約瑟夫環(huán)

編程代碼之戰(zhàn) 程序小猿 2069 2020-02-27 14:05:32

  一大清早,天剛蒙蒙亮。

  楊成洗漱完畢,匆忙吃了一點早餐,便來到了網(wǎng)吧。

  他心中隱隱地對下一個關(guān)卡有了些期待。

  作為一名準程序員,新鮮事物對于他總是很有吸引力的。

  反倒是那些室友,楊成感覺更像是20世紀的人。

  居然還玩橫板格斗單機游戲...

  能不能稍微有點追求啊!

  楊成很快戴上頭盔,進入了角色。

  “叮!”

  熟悉的系統(tǒng)音響起來。

  “親愛的挑戰(zhàn)者,準備前往下一個關(guān)卡了嘛?”

  “OK,一切就緒”。

  楊成打出個勝利的手勢。

  “祝你好運!”

  系統(tǒng)發(fā)出貼心的祝福,然后楊成的意識進入到了另外一個空間。

  喬塔帕特小鎮(zhèn)的夜晚并不寧靜,此時月黑風高。

  一群全副武裝的士兵闖入了這里,他們戴著狼皮頭盔,身穿堅韌的鎧甲,手里拿著盾牌與標槍,身上還配著鋒利的短劍。

  這一切表面了他們的身份——殘暴無比的羅馬人。

  “抓住每一個猶太人,記住,要活的!”

  “我要親自把匕首捅進這群吸血鬼的心臟!”

  為首的羅馬將領(lǐng)發(fā)布了不容置疑的命令,士兵們則開始了四處追捕。

  而小鎮(zhèn)的另一邊出口,一群身穿黑色斗篷的人趁著茫茫夜色,行色匆匆地逃竄著。

  “不能再這樣下去了”。

  有人說道。

  “羅馬人很快會追上來,我們逃不掉的”。

  “我可不想死在那些劊子手的屠刀下!”

  “還不如自我了結(jié)掉!”

  有人哀嚎道。

  這時,一個好事者跳了出來。

  “我有個提議,咋們41個人排成一個圓圈,由第1個人開始報數(shù),每報數(shù)到第3人這個人就必須自殺,然后再由下一個重新報數(shù),直到所有人都自殺身亡為止”。

  “大家贊同嗎?”

  大部分人舉起了手臂,只有兩個人除外。

  一個自然是楊成,他是來完成任務的,可不是來和這些SB糾纏不清的。

  還有一個人,人們都稱呼他為約瑟夫。

  這廝據(jù)說是個歷史學家或者說是數(shù)學家。

  不過這顯然無關(guān)緊要,反正大伙都得玩完兒。

  約瑟夫眨巴著眼睛,眼中閃爍不定,不知道在想些什么。

  其他人不認得楊成,卻認得約瑟夫。

  “約瑟夫,你想做膽小鬼嗎?”

  “沒門!”

  有人開始憤憤不平了。

  “不不不”。

  約瑟夫搖搖頭。

  “各位請先入場,我隨后就來”。

  楊成自然也是很識時務地點了點頭,表示自己愿意順從大家的意志。

  約瑟夫瞟了楊成一眼,眼中多了一絲玩味,楊成則是低垂著頭,一言不發(fā)。

  事實上,他正在從全息菜單中調(diào)取代碼編輯器面板,來一次死亡邊緣的編程。

  其他的猶太人走到一處空地上,開始組成一道死亡的環(huán)形隊列。

  楊成依然面不改色,他正在一個接一個字符地編寫代碼。

  “總?cè)藬?shù)41,報數(shù)間隔3,余留人數(shù)1”。

  楊成開始了初始化配置。

  對于約瑟夫環(huán)問題,可以用循環(huán)列表來求解。

  只要剩余人數(shù)大于1個,那么就執(zhí)行兩個操作,一是報數(shù),二是殺人。

  值得注意的是,循環(huán)列表有鏈表和數(shù)組兩種實現(xiàn)方式,它們的效率是不一樣的。

  一般來說,用循環(huán)鏈表來解決Josephus問題效率會更高。

  然而,時間不等人。

  站在圈中的人開始不耐煩了。

  “我說,那邊那兩個,還不過來是什么意思?!”

  “不會要咋們親自動手吧!”

  “好的,讓諸位久等了”。

  約瑟夫瞇著眼睛,走向人們。

  他很快站定了位置,一臉的輕松自如。

  楊成在虛擬編輯器上折騰了半天,最后一運行,好不容易求出了結(jié)果。

  這結(jié)果告訴他,第三十一個位置才是最安全的,或者說是最后被干掉的。

  他放眼一掃,發(fā)現(xiàn)第三十一位竟然被約瑟夫占據(jù)了。

  “這狡猾的老家伙!”

  楊成不禁唾罵一聲。

  原來這約瑟夫早就算出了最安全的位置,而自己還在這兒傻乎乎地敲代碼。

  這其實也只能怪楊成自己,他用循環(huán)列表求解約瑟夫環(huán),要模擬整個游戲的過程。

  不但程序?qū)懫饋砗苈闊?,而且?zhí)行的效率還很低。

  如果只是要求出最后的勝利者序號,實施一點數(shù)學策略就可以做到。

  我應該找一個公式來算的!

  不過來不及了,再這么下去楊成就會被暴怒而絕望的猶太人撕成碎片了。

  于是他加快了思維速度。

  事實上呢,因為他初始化配置非常得當。

  只需要稍稍地改變一下程序代碼,把余留人數(shù)從1改成2,不就OK了嘛?

  程序再次運行,他很快得到了自己應該站的位置——16。

  楊成站好了地方,這場死亡游戲便拉開了序幕。

  “1”,第一個人吹響了死亡的號角。

  “2”,第二個人暫避了風險,不過殊途同歸。

  “3”,報到這個數(shù)字的人,面色慘白,然后,他絕望地掏出一支匕首,狠狠地劃向自己的肌膚。

  “噗通!”

  鮮血染紅了草地,死神繼續(xù)揮舞著殺戮的鐮刀。

  “1...”

  “2...”

  剛才還站立著的人,此時已經(jīng)倒了個七七八八。

  而約瑟夫和楊成就好比暴風雨中的兩艘巨艦一般,繼續(xù)乘風破浪,毫無顧忌。

  有些人看出了點端倪,但在絕望中都只是徒勞的。

  就算是沒自殺,那些粗魯野蠻的羅馬人會留活口嗎?

  “噗通!”

  倒數(shù)第三位的人倒在了血泊之中。

  約瑟夫緊盯著眼前這個年輕人,他根本不像是猶太人,更像來自東方的旅人。

  “我說,你怎么不報數(shù)了?”

  約瑟夫目光中流露出一絲狡黠。

  “約瑟夫先生,你很聰明”。

  對于這種智者,楊成毫不吝惜贊美之詞。

  “哦?你的意思我不明白”。

  約瑟夫還在裝糊涂。

  “我的目的和你是一樣的!”

  楊成平視約瑟夫,后者微微一愣。

  “那就是活下去!”

  說完,楊成轉(zhuǎn)過身子,走進了叢林深處。

  “有趣的小子”。

  約瑟夫丟下這句話,也是一轉(zhuǎn)身,逃了個無影無蹤。

  這時,東方的地平線上第一縷曙光開始出現(xiàn),地面上橫七豎八的尸體也消失不見了。

  “叮!”

  愉悅的系統(tǒng)聲音響起來。

  “恭喜玩家您完成了約瑟夫環(huán)的任務”。

  “先前積分15分”。

  “循環(huán)列表求解約瑟夫環(huán)獎勵2分”。

  “當前積分17分,擊敗了全球11%的玩家”。

  “才2分,太少了吧”。

  楊成玩了幾把游戲,也算是開闊了一些眼界。

  “您現(xiàn)在準備開始下一個挑戰(zhàn)嘛?”

  楊成伸了伸懶腰。

  “馬上開始吧,大爺現(xiàn)在精力充沛,打幾個怪升升級沒有半點問題”。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南