Python ヨセフスの生者と死者のミニゲーム

Document 对象参考手册Python3 実例

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号下船了

Document 对象参考手册Python3 実例

その他の拡張