我正在尝试解决约瑟夫斯问题,并且我有工作代码。
def J(n,x):
li=range(1,n+1)
k = -1
while li:
print li
k = (k+x) % len(li)
li.pop(k)
k =k- 1
J(10, 3)
现在我想重写它以获得如下结果:
1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 0 1 1 1 1
1 1 0 1 1 0 1 1 0 1
1 0 0 1 1 0 1 1 0 1
1 0 0 1 1 0 0 1 0 1
0 0 0 1 1 0 0 1 0 1
0 0 0 1 1 0 0 0 0 1
0 0 0 1 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
我怎样才能做到这一点?
def J(n,x):
li=[1]*10
k = -1
while li.count(1)>0:
print li
k = (k+x) % len(li)
li[k]=0
k =k- 1