“Josephus-problem” usando lista em python
Eu queria saber se será possível resolver o problema do Josepheus usando a lista em python.
Em termos simples, o problema de Josephus é todo sobre encontrar uma posição em um arranjo circular que seria seguro se as execuções fossem tratadas usando um parâmetro de salto que é conhecido de antemão.
Por exemplo: dado um arranjo circular como[1,2,3,4,5,6,7]
e um parâmetro de salto de 3, as pessoas serão executadas na ordem como3,6,2,7,5,1
e posição4
seria o seguro.
Eu tenho tentado resolver isso usando lista por algum tempo agora, mas as posições do índice se tornam complicadas para eu lidar.
a=[x for x in range(1,11)]
skip=2
step=2
while (len(a)!=1):
value=a[step-1]
a.remove(value)
n=len(a)
step=step+skip
large=max(a)
if step>=n:
diff=abs(large-value)
step=diff%skip
print a
Atualizada a questão com o trecho de código, mas não acho que minha lógica esteja correta.