约瑟夫生者死者小游戏
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
# 首先来一个超载的小船30人
people = list(range(1,31)) # 这个编号是1~30
# 人数大于15就继续踢人
while len(people) > 15:
i = 1
# 将前八个人移动到末尾,将第九个踢出
while i < 9:
people.append(people.pop(0))
i = i + 1
print('{:2d}号下了船'.format(people.pop(0)))