约瑟夫斯的问题 江铭辉 五梦网
公元370年左右。某人以海杰西普斯(Hegesippus)为笔名写了一本书,其中有一则故事是这样的:尤达巴达被罗马人包围时,希腊史家约瑟夫斯(Josephus)和友人及39位同胞共41人一起躲在洞穴里,他和友人想继续活下去,但是同胞们决心杀身成仁,也不愿做罗马人的俘虏。
图1:41人,约斯夫斯和友人排在第16、31,躲过难关。
约斯夫斯和其友人既不能以少数反驳多数,只好佯装赞同他们集体自杀的提议。正当要自杀时,约瑟夫斯提出一个办法。建议全体排成圆圈,由1数到3,数到3的人便由别人把他杀死。最后剩下的一人自杀,大家听了都表示赞同。
于是他想,机会来了,稍稍动一下脑筋,便把自己和友人排在第16和31的位置上(如图1)。办法进行后,同胞们一个个如愿以偿杀身成仁了,而约瑟夫斯的求生计划也顺利成功。诸如此类的问题,在西方一律被称为「约瑟夫斯的问题」。
约瑟夫斯问题中最有名的就是「土耳其人和基督徒的问题」这是一个非常古老的谜语。10或11世纪的抄本中有这段故事,1484年尼古拉斯(Nicolas Chuquet)用法文所写的书中,叙述这故事,其内容如下:
基督徒和土耳其人各15人同乘一条船,途中不幸遇到暴风雨,船触礁了。在这种情况下,船长只有下令投十五人入海,才能避免沈船,他把全部旅客集合在甲板上。叫他们排成圆圈,由其中一人开始报数,数到9的人就被抛入海里。不过这位船长别有心思,他把基督徒和土耳其人按下列顺序排列,C代表基督徒(Christian),T代表土耳其人(Turkish)。
由于船长的巧妙安排,基督徒全部得救。图2是排列的图形,红圆表示基督徒,黑圆表示土耳其人。
图2:将32个人按下列次序排列,红圆表示基督徒,黑圆表示土耳其人。
上述是西方人的问题,东方也有类似故事。
「立前妻之子继业」是日人吉田光由所著「尘劫记」中的一则故事。叙述一个家庭有30个孩子,继母有15人儿子,前妻亦留下15个孩子。有一天,这个妇人召集30个孩子,叫他们排成一个圆圈,由1数到10,每一个数到10的人便离开圈子,最后剩下的一人就是继承家业者。于是孩子们便照着母亲的办法去做,没想到前妻的孩子一个一个被踢除,其中一位就大声抗议说:「这样太不公平了,请先从我开始计数。」妇人听这话也有道理,不得不答应他重新围成一圈报数,这次妇人的儿子被踢掉去,她的计谋未能得逞。
这个故事可以用图3表示,红圈点代表亲生子,黑圈点则代表前妻之子,依顺时钟方向由A开始计数,B就是最后留下来继承家业的孩子(前妻之子)。
图3:B是继承家业的孩子,红圈点代表亲生子,黑圈点则代表前妻之子。
若将「土耳其人和基督徒的问题」和一立前妻之子继业,比较,则趣味横生。前者船长的谋略成功。但后者继母的计谋未得逞,西方人对这位船长的策略颇有称赞的味道,不过在道德观念较严谨的东方人看来,实不敢苟同。
日本还有另一故事「西行的描」,出自「算法稽古图会」(公元1831年),内容和「立前妻之子继业」大同小异。叙述公元1186年,西行法师在镰仓碰见源赖朝,源赖朝赐给他一只银做的猫。西行法师一出门,看见门外有孩子在玩耍。他想把这只猫送给孩子,但孩子们个个争着要;于是他想出一个办法,叫孩子们排成一个三十人的圆圈报数,每数到20的人退出圈外,最后剩下的人就是银银猫得主。
西行的猫,是不是真实的无从考证,不过在日本西行法师确有其人。