«Josephus-problem» используя список в Python
Я хотел знать, удастся ли решить проблему Иосифа, используя список в Python.
Проще говоря, проблема Джозефуса заключается в том, чтобы найти положение в круговом расположении, которое было бы безопасным, если бы выполнение выполнялось с использованием параметра пропуска, который известен заранее.
Например: дано круговое расположение, такое как[1,2,3,4,5,6,7]
и параметр пропуска 3, люди будут казнены в порядке как3,6,2,7,5,1
и положение4
будет безопасным.
Я пытался решить эту проблему с помощью списка в течение некоторого времени, но позиции индекса становятся сложными для меня.
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
Updated вопрос с фрагментом кода, но я не думаю, что моя логика верна.