„Josephus-problem” używając listy w pythonie
Chciałem wiedzieć, czy możliwe będzie rozwiązanie problemu Josepheusa za pomocą listy w Pythonie.
W prostych słowach problem Flawiusza polega na znalezieniu pozycji w układzie kołowym, która byłaby bezpieczna, gdyby egzekucje były obsługiwane za pomocą znanego wcześniej parametru pomijania.
Np. Dla danego układu kołowego, takiego jak[1,2,3,4,5,6,7]
i parametr pominięcia równy 3, ludzie będą wykonani w kolejności jak3,6,2,7,5,1
i pozycja4
byłoby bezpieczne.
Od jakiegoś czasu próbuję rozwiązać ten problem używając listy, ale zajmowanie pozycji indeksowych staje się trudne.
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
Zaktualizowano pytanie z fragmentem kodu, ale nie sądzę, aby moja logika była poprawna.