Josephus問題,在這個古老的問題中,N個深陷絕境的人一致同意通過以下方式減少生存的人數。他們圍坐一圈(位置記為0~N-1)並從第一個人報數,報到M的人會被殺死, 知道最後一個人留下來。傳說中Josephus找到了不會被殺死的位置。 接收N和M的值,列印出被殺死的順序: ...
Josephus問題,在這個古老的問題中,N個深陷絕境的人一致同意通過以下方式減少生存的人數。他們圍坐一圈(位置記為0~N-1)並從第一個人報數,報到M的人會被殺死,
知道最後一個人留下來。傳說中Josephus找到了不會被殺死的位置。
接收N和M的值,列印出被殺死的順序:
if __name__ == "__main__":
num_people = int(input("深陷絕境的人數:"))
num_kill = int(input("死亡數字:"))
i = 1
people_list = []
for j in range(num_people):
people_list.append(j)
while 1:
if len(people_list) == 1:
print(" " , people_list.pop(), "live")
break
first_person = people_list.pop(0)
if i != num_kill:
people_list.append(first_person)
else:
i = 0
print(first_person, end=" ")
i += 1