约瑟夫的死亡游戏,也称为约瑟夫斯置换,是计算机编程的算法中常遇到的一个问题,又被称为“约瑟夫环”。
约瑟夫的故事是这样的:中古时期,罗马人占领了乔塔帕特,有四十一个犹太抵抗者躲进山洞。这些犹太人决定杀身成仁,舍身取义,大伙儿七嘴八舌地商量了一会儿,定了一个自杀方式。41个人围成圈,从第1个人开始报数,每报数到第3人,那个人就必须自杀。然后再由下一个重新从1报数,直到所有人都自杀身亡为止。
这个死亡游戏,有点脱裤子放屁的意思。真想死,大家一起自杀就完了。所以,游戏参与者的心态,要么是担心有人怕死不自杀,所以想让大家见证和监督每一次死亡;要么是心存侥幸,如果其他人都死了,自己幸运地留到了最后,就能逃过一死,大大方方去投降了。
事实上,队伍里确实有两个怕死的懦夫——历史学家约瑟夫和他的朋友,死亡游戏正是约瑟夫提议的。
约瑟夫是一位被历史耽误的数学天才,他很快推算出排在圈中的第16与第31个位置的人,将留到最后,于是他和朋友占据了这两个位置。等同伴们都死光了,他和朋友一起向罗马人投诚。他恭维罗马指挥官会成为皇帝,由此获得了罗马公民的身份。后来又以传译官的身份参与了罗马进攻耶路撒冷的战争,成为一名可耻的带路党。
无论约瑟夫人品如何,约瑟夫问题被引入了计算机编程,经常作为一道练习题出现在各种计算机编程语言教材当中。约瑟夫问题并不难,求解的方法也很多。
骆有成认为,如果绕开“莫比乌斯环”游戏的方法真的是用“约瑟夫环”的思路,那么证明“舅爷爷”并不想为难自己这个继承人。只要想象力丰富一点,且恰巧听过约瑟夫的故事,就能找到顺利通关的办法。
骆有成说三十一号坑应该能证实他的想法。之所以选择三十一,而不是十六号坑,是因为41-3约瑟夫环留到最后的是31,16是倒数第二。
柳莹却提出了不同看法,假如他们最开始的选择不是一号坑,而是三十一号坑或者十六号坑,那就直接通关了,这样未免太儿戏,太反智。骆有成觉得柳妹说得也有道理,自从柳妹进了他的身子,人好像都稍稍聪明了一些。
事实也的确如此,在离开返真实境游戏后,骆有成曾就约瑟夫环的问题向阿庆求证过。
阿庆告诉他,如果把约瑟夫死亡游戏中的41人看作n,报数3看作m,n和m可以是任意整数。
在游戏设定中,n是定数,就是41,但m是随着闯关失败次数变化的。骆有成两人有三次失败经历,所以m恰好是3,与古老的故事中报数吻合。如果失败的次数是其他数值,结果肯定不会是31。比如失败4次,最后出环的数是11;失败5次,骆有成则该去跳22号坑。
这是后话,还是回到游戏场景。
验证的结果与骆有成想象的完全一致,三十一号坑没坑他,这里的场景是一间书房。苏远庆的影像坐在书桌后,向他的继承人讲了一段话。大意是推开书房的后门,通关一个很轻松的小游戏,就能找到一个小彩蛋。
柳莹不可思议地问:“开玩笑吧?这么简单?”
骆有成傲骄地挺起酥胸,“也不简单,如果不是我恰好由‘环’想到‘约瑟夫环’,我们现在还在苦逼地跳坑。”
柳莹想了想,点点头,顺嘴送上奉承:“有成哥最聪明。”
骆有成本想和“舅爷爷”多交流几句,却发现他翻来覆去就几句话。他面前的只是很单纯的一个影像,而不是智能。换句话说,是传说中的npc。没有任务目标,没有任何暗示或提示。
刚夸完有成哥的柳莹又傻眼了:“到底要我们做什么?”
骆有成无奈地摇头。两人出了书房,来到了后花园。花园不算大,三百来平。初看挺漂亮,有树有花有草,有桌椅有秋千有鱼池有除草机。
柳莹却皱起了眉。草长得很高,已经不是草坪,而是草场了。几棵小叶榕上缠满了菟丝子,枝叶萎靡不振。桌椅上落了灰,还有一把椅子翻到在地……在爱干净的柳妹子看来,基础这么好的花园被弃之不顾,是对美好事物的亵渎。
骆有成娇声埋怨道:“先别管它了,找找线索。哎,舅爷爷说得轻松,连一点提示都不给。”
柳莹也扭动着胖胖的身躯,环顾四周,一筹莫展。不知道任务目标,他们完全无从下手。花园就那么大点,属于空旷地,一眼望去,看不到任何值得关注的地方。
柳莹跟着有成哥的屁股后面转了半天,钻草窠,拨花丛,爬树掏洞,一无所获。她本就不喜欢烧脑的游戏,干脆给骆有成丢了句话,自己跑去用剪草机除草了。
骆有成在花园里没有发现,就推开篱笆,进了园子后面的树林。然而,这片树林就是样子货,走了没一分钟,就到了尽头,再往前走也只能原地踏步。骆有成沿着尽头的边界在林子里走了一个来回,依旧没有任何发现。
骆有成心里越发觉得蹊跷。这个“舅爷爷”嘴里的小游戏,和其他“环形”游戏最大的不同,就是返真实境里的体感被削弱了许多,没有那么真实,细节处理上也相对粗糙。其他游戏是精心之作,那么这个小游戏,就是急就章,风格完全不搭。他坐在