约瑟夫的死亡游戏,也称为约瑟夫斯置换,是计算机编程的算法中常遇到的一个问题,又被称为“约瑟夫环”。

    约瑟夫的故事是这样的:中古时期,罗马人占领了乔塔帕特,有四十一个犹太抵抗者躲进山洞。这些犹太人决定杀身成仁,舍身取义,大伙儿七嘴八舌地商量了一会儿,定了一个自杀方式。41个人围成圈,从第1个人开始报数,每报数到第3人,那个人就必须自杀。然后再由下一个重新从1报数,直到所有人都自杀身亡为止。

    这个死亡游戏,有点脱裤子放屁的意思。真想死,大家一起自杀就完了。所以,游戏参与者的心态,要么是担心有人怕死不自杀,所以想让大家见证和监督每一次死亡;要么是心存侥幸,如果其他人都死了,自己幸运地留到了最后,就能逃过一死,大大方方去投降了。

    事实上,队伍里确实有两个怕死的懦夫——历史学家约瑟夫和他的朋友,死亡游戏正是约瑟夫提议的。

    约瑟夫是一位被历史耽误的数学天才,他很快推算出排在圈中的第16与第31个位置的人,将留到最后,于是他和朋友占据了这两个位置。等同伴们都死光了,他和朋友一起向罗马人投诚。他恭维罗马指挥官会成为皇帝,由此获得了罗马公民的身份。后来又以传译官的身份参与了罗马进攻耶路撒冷的战争,成为一名可耻的带路党。

    无论约瑟夫人品如何,约瑟夫问题被引入了计算机编程,经常作为一道练习题出现在各种计算机编程语言教材当中。约瑟夫问题并不难,求解的方法也很多。

    骆有成认为,如果绕开“莫比乌斯环”游戏的方法真的是用“约瑟夫环”的思路,那么证明“舅爷爷”并不想为难自己这个继承人。只要想象力丰富一点,且恰巧听过约瑟夫的故事,就能找到顺利通关的办法。

    骆有成说三十一号坑应该能证实他的想法。之所以选择三十一,而不是十六号坑,是因为41-3约瑟夫环留到最后的是31,16是倒数第二。

    柳莹却提出了不同看法,假如他们最开始的选择不是一号坑,而是三十一号坑或者十六号坑,那就直接通关了,这样未免太儿戏,太反智。骆有成觉得柳妹说得也有道理,自从柳妹进了他的身子,人好像都稍稍聪明了一些。

    事实也的确如此,在离开返真实境游戏后,骆有成曾就约瑟夫环的问题向阿庆求证过。

    阿庆告诉他,如果把约瑟夫死亡游戏中的41人看作n,报数3看作,n和可以是任意整数。

    在游戏设定中,n是定数,就是41,但是随着闯关失败次数变化的。骆有成两人有三次失败经历,所以恰好是3,与古老的故事中报数吻合。如果失败的次数是其他数值,结果肯定不会是31。比如失败4次,最后出环的数是11;失败5次,骆有成则该去跳22号坑。

    这是后话,还是回到游戏场景。

    验证的结果与骆有成想象的完全一致,三十一号坑没坑他,这里的场景是一间书房。苏远庆的影像坐在书桌后,向他的继承人讲了一段话。大意是推开书房的后门,通关一个很轻松的小游戏,就能找到一个小彩蛋。

    柳莹不可思议地问:“开玩笑吧?这么简单?”

    骆有成傲骄地挺起酥胸,“也不简单,如果不是我恰好由‘环’想到‘约瑟夫环’,我们现在还在苦逼地跳坑。”

    柳莹想了想,点点头,顺嘴送上奉承:“有成哥最聪明。”

    骆有成本想和“舅爷爷”多交流几句,却发现他翻来覆去就几句话。他面前的只是很单纯的一个影像,而不是智能。换句话说,是传说中的npc。没有任务目标,没有任何暗示或提示。

    刚夸完有成哥的柳莹又傻眼了:“到底要我们做什么?”