##约瑟夫问题import random
defjosephProblem(L,N):#start = random.choice(range(len(L)))
start = 2print'start:',L[start],L
current = start
count = 1while len(L) > 1:
print'current:',L[(current) % len(L)],
while count < N:
count += 1
current = (current + 1) % len(L)
out = L.pop(current)
print'out:',out,L
count = 1print'last left:',L
if __name__ == '__main__':
soldiers = ['A','B','C','D','F','G']
josephProblem(soldiers,3)
>>>
start: G ['A', 'B', 'C', 'D', 'F', 'G']
current: G out: B ['A', 'C', 'D', 'F', 'G']
current: C out: F ['A', 'C', 'D', 'G']
current: G out: C ['A', 'D', 'G']
current: D out: A ['D', 'G']
current: D out: D ['G']
last left: ['G']