poster198

约瑟夫环

在一个集体“杀人”游戏中, 每隔一人就要处决一人, 如果你不想死, 你应该站在几号位置?
约瑟夫环
16 人挑战成功
趣味数学挑战

完成本期挑战需要达到:

大众数学水平

题目

编号个人按顺序围成一个圈. 号有一把剑,他杀了下一个人(即号),并把剑给下一个活着的人(即号),他要杀了再下一个人(即号),再把剑给下一个活着的人(即号),按这个规则进行游戏直到只有一个人活下来. 那么__________号能活到最后.

选项

约瑟夫问题是一个经典的算法问题.

人们围成一圈, 从圆圈中的指定位置开始计数, 并沿指定方向绕圆圈进行. 在跳过指定数量的人之后, 处刑下一个人. 对剩下的人重复该过程, 从下一个人开始, 继续朝同一方向跳过相同数量的人, 直到只剩下一个人, 并被释放.

那么问题来了, 给定人数、起点、方向和要跳过的数字, 选择初始圆圈中的哪个位置可以避免被处决呢?

这个问题是以弗拉维奥·约瑟夫命名的, 他是1世纪的一名犹太历史学家. 他在自己的日记中写道, 他和他的个战友被罗马军队包围在洞中. 他们讨论是自杀还是被俘, 最终决定自杀.

自杀方式是个人围成一个圆圈, 由第个人开始报数, 每报数到第人该人就必须自杀, 然后再由下一个重新报数, 直到所有人都自杀身亡为止. 然而约瑟夫和他的朋友并不想死. 由于这个过程沿着圆圈一直进行, 直到最终只剩下一个人, 这个人就可以继续活着. 于是约瑟夫要他的朋友先假装遵从, 他将朋友与自己安排在第个与第个位置, 于是逃过了这场死亡游戏.

这个问题有很多种解决的办法, 但是大多数情况下都需要计算机的帮助. 那有没有一种情况我们可以直接口算呢? 有.

当报数到第二个人就得自杀, 并且总人数是时, 活下来的肯定是第一个人.

人为例: image

可以看出每一轮结束后总人数减半, 仍然是, 因此号活到了最后.

那么按照这个游戏规则当人数为人时, 站在哪里会生存下来呢?

发布于 2021-08-28 06:15
logo
慕容玖
level4
编辑于 2021-08-28 06:15
logo
慕容玖
level4
@白云 非常好的建议,第一轮偶数号玩家都死了,两个偶数的选项太容易被排除,改掉了。谢谢!
logo 慕容玖 2021-10-13