Python ヨセフスの生者と死者のミニゲーム
30 人が船に乗っていますが、超過積載のため、15 人が下船する必要があります。
そこで人々は一列に並び、並んだ位置が彼らの番号となります。
数を数えます。1 から始めて、9 を数えた人が下船します。
これを繰り返し、船に残っている人が 15 人だけになるまで続けます。どの番号の人々が下船したでしょうか。
実例
people={}
for x in range(1,31):
people[x]=1
# print(people)
check=0
i=1
j=0
while i<=31:
if i == 31:
i=1
elif j == 15:
break
else:
if people[i] == 0:
i+=1
continue
else:
check+=1
if check == 9:
people[i]=0
check = 0
print("{}番が下船しました".format(i))
j+=1
else:
i+=1
continue
上記の実例を実行すると、出力結果は次のとおりです。
9号下船了 18号下船了 27号下船了 6号下船了 16号下船了 26号下船了 7号下船了 19号下船了 30号下船了 12号下船了 24号下船了 8号下船了 22号下船了 5号下船了 23号下船了その他の拡張
Python3 実例