我想知道是否可以在 python 中使用 list 来解决 Josepheus 问题。
简单来说,约瑟夫斯问题就是在循环排列中找到一个位置,如果使用预先知道的跳过参数处理执行,这将是安全的。
例如:给定一个圆形排列,例如[1,2,3,4,5,6,7]
跳过参数为 3,人员将按顺序执行,3,6,2,7,5,1
并且位置4
将是安全的。
一段时间以来,我一直在尝试使用 list 来解决这个问题,但是索引位置对我来说变得难以处理。
a=[x for x in range(1,11)]
skip=2
step=2
while (len(a)!=1):
value=a[step-1]
a.remove(value)
n=len(a)
step=step+skip
large=max(a)
if step>=n:
diff=abs(large-value)
step=diff%skip
print a
用代码片段更新了问题,但我认为我的逻辑不正确。