def qiuhe(x,y):
"""
用于求和的函数。
Input:
x:接收1个实数;
y:接收1个实数。
Output:
返回x+y的计算结果
"""
print(x)
print(y)
z=x+y
return z
result=qiuhe(1,2)
1
2
qiuhe(y=1,x=2)
2
1
3
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:
返回一个列表,列表中元素为幸存者的编号。
"""
list1 =[i for i in range(1,players+1)]
while len(list1)>alive:
list1=move(list1,step)
list1.pop(0)
return list1
players_num=input('请输入参加游戏的人数')
step_num=input("请输入淘汰的人数")
alive_num=input("请输入幸存人数")
alive_list=play(players_num,step_num,alive_num)
print(alive_list)
play(50,4,3)
[30, 47, 1]