%%writefile ysf.py
def move(players,step):
num = step - 1
while num > 0:
tmp = players.pop(0)
players.append(tmp)
num = num - 1
return players
def play(players, step, alive):
"""
模拟约瑟夫问题的函数
input:
players: 参加游戏的人数;
step: 数到step数字的人数淘汰;
alive: 幸存人数,游戏结束。
output:
返回一个列表,列表中的元素为幸存者编号。
"""
l = [i for i in range(1,players1)]
while len(l)>alive:
l = move(l,step)
l.pop(0)
return(l)
players_num = int(input("请输入参加游戏的人数"))
step_num = int(input("请输入淘汰的数字"))
alive_num = int(input("请输入幸存的人数"))
alive_list = play(players_num, step_num, alive_num)
print(alive_list)
writing ysf.py