约瑟夫环问题,约瑟夫环,[Python]代码de


[Python]代码

def J(n,x):    li=range(1,n+1)    while li:        print '\t'.join('1' if i in li else '0' for i in range(1,n+1))        li=li[x-1:]+li[:x-1]        li=li[1:]J(10, 3)#output:#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=range(1,n+1)    while li:        print '\t'.join('1' if i in li else '0' for i in range(1,n+1))        li=(lambda t: li[t:]+li[:t])( (x-1)%len(li) )[1:]J(10, 5)#Out:#1  1   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   1   1   0#1  1   1   1   0   0   1   1   1   0#1  0   1   1   0   0   1   1   1   0#1  0   1   1   0   0   1   1   0   0#1  0   1   1   0   0   1   0   0   0#0  0   1   1   0   0   1   0   0   0#0  0   1   0   0   0   1   0   0   0#0  0   1   0   0   0   0   0   0   0

评论关闭