🎮
Among Usでランダムで一人を追放したときの勝率を計算する
前提
- 緊急会議により、生存者からランダムに一人を抽出して、必ず追放する。
- その他の理由で生存者は減らない。
結果
crewmates: 7, imposters: 3 => winRate: 0.4000 (checksum: 1.0000000000000007)
crewmates: 6, imposters: 3 => winRate: 0.3333 (checksum: 1.0000000000000002)
crewmates: 5, imposters: 3 => winRate: 0.2500 (checksum: 0.9999999999999998)
crewmates: 4, imposters: 3 => winRate: 0.1429 (checksum: 1)
crewmates: 3, imposters: 3 => winRate: 0.0000 (checksum: 1)
crewmates: 8, imposters: 2 => winRate: 0.6000 (checksum: 1)
crewmates: 7, imposters: 2 => winRate: 0.5556 (checksum: 1.0000000000000002)
crewmates: 6, imposters: 2 => winRate: 0.5000 (checksum: 0.9999999999999998)
crewmates: 5, imposters: 2 => winRate: 0.4286 (checksum: 1)
crewmates: 4, imposters: 2 => winRate: 0.3333 (checksum: 1)
crewmates: 3, imposters: 2 => winRate: 0.2000 (checksum: 1)
crewmates: 2, imposters: 2 => winRate: 0.0000 (checksum: 1)
crewmates: 7, imposters: 1 => winRate: 0.7500 (checksum: 1)
crewmates: 6, imposters: 1 => winRate: 0.7143 (checksum: 0.9999999999999999)
crewmates: 5, imposters: 1 => winRate: 0.6667 (checksum: 1)
crewmates: 4, imposters: 1 => winRate: 0.6000 (checksum: 1.0000000000000002)
crewmates: 3, imposters: 1 => winRate: 0.5000 (checksum: 1)
crewmates: 2, imposters: 1 => winRate: 0.3333 (checksum: 1)
crewmates: 1, imposters: 1 => winRate: 0.0000 (checksum: 1)
計算したスクリプトのソースコードは以下です。
所感
crewmates=8, imposters=2 なら、6 割勝てるんだというのが勉強になりました。
自分からみてインポスターではないと確信しているひとが何人か居るなら、それ以外の人の状況が不明でも吊れるように努力した方がいいかもしれない。
こういうのを力技で解かずに、ちゃんと確率の手法に沿って算出したい。
Discussion