大人数でじゃんけんすると平均何回で勝負が決まるか
大人数でじゃんけんをするとなかなか勝負が決まりません。
何回やれば勝負がつくか。
勝負が決まるまでの平均回数をシミュレートしてみました。
結果は下表のとおりです。2人から15人の場合を計算しました。
ランダムにグー、チョキ、パーを出して、手がグーとチョキだけなど2種類になるまでの回数を求め、平均しています。
2人の場合は平均1.5回で勝負が決まります。
3人の場合も平均1.5回でした。
4人では平均1.9回で以降、増えていきます。
15人だと平均146回でした。
人数 | 平均回数 |
---|---|
2 | 1.5034 |
3 | 1.5125 |
4 | 1.9467 |
5 | 2.6794 |
6 | 3.9307 |
7 | 5.7908 |
8 | 8.6049 |
9 | 12.844 |
10 | 19.3431 |
11 | 28.7035 |
12 | 43.3142 |
13 | 64.6853 |
14 | 97.6583 |
15 | 146.1063 |
コードを載せておきます。Pythonです。
import random
def main():
for ninzu in range(2, 16):
print(ninzu, heikin(ninzu))
def heikin(ninzu):
all = 10000
results = []
for i in range(all):
result = once(ninzu)
results.append(result)
average = sum(results) / all
return average
def once(ninzu):
te = []
ct = 0
while True:
ct += 1
te = []
for n in range(ninzu):
te.append(random.randint(0, 2))
te = list(set(te))
if len(te) == 2:
return ct
if __name__ == "__main__":
main()
def main():
for ninzu in range(2, 16):
print(ninzu, heikin(ninzu))
def heikin(ninzu):
all = 10000
results = []
for i in range(all):
result = once(ninzu)
results.append(result)
average = sum(results) / all
return average
def once(ninzu):
te = []
ct = 0
while True:
ct += 1
te = []
for n in range(ninzu):
te.append(random.randint(0, 2))
te = list(set(te))
if len(te) == 2:
return ct
if __name__ == "__main__":
main()
[ 2022年6月1日 | カテゴリー: 豆知識 | タグ: 確率 ]
« UiPathでJSONを処理する方法 | UQ WiMAX に切り替える »
コメントを残す