Pythonはキューを使用してJosephus問題を実現


Josephus問題は、この古い問題の中で、N人の窮地に陥った人が以下の方法で生存人数を減らすことに合意した.彼らは1周(位置は0~N-1と記入)囲んで最初の人から数えて、Mに報告した人は殺されます.
最後の一人が残ることを知っている.伝説のJosephusは殺されない位置を見つけた.
NとMの値を受け取り、殺された順番を印刷します.
if name == “main”: num_people=int(input(「窮地に陥った人数:」)num_kill=int(input(「死亡数:」)i=1 people_list = [] for j in range(num_people): people_list.append(j)
while 1:
    if len(people_list) == 1:
        print("  " , people_list.pop(), "live")
        break

    first_person = people_list.pop(0)

    if i != num_kill:
        people_list.append(first_person)
    else:
        i = 0
        print(first_person, end=" ")

    i += 1