您的位置:首页 > 其它

12门徒问题(即约瑟夫环)

2013-09-03 10:27 113 查看
13人围成一圈,从其中一人开始数数,数到3的人踢出去,然后下一个重新从1数,问最后留下哪一个?

def next_one((lista,indexb)):
if len(lista)-1>indexb:
return (lista,indexb+1)
return (lista,0)

def j(n,m):
a=[]
for i in range(1,n+1):
a.append(i)
count = (a,0)
while len(a)>1:
for y in range(1,m):
count = next_one(count)
a.remove(a[count[1]])
return a[0]


n代表围成一圈的人数,m代表数到第几的时候踢人。

返回的是列表a中仅剩的那个元素。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: