じゃんけん10連勝

「1024人でトーナメントをすると必ず10連勝する人が現れる」的な話がありますが、もし実際に私がそんな大会を開くとしたら、残った1023人で敗者復活戦をやってもう一人10連勝者を出し、11連勝者を作りたくなるでしょう。
同様に、時間をかければ12連勝や13連勝も作れるはずですし、1024人も集めずとも10連勝者は作れるはずです。

大会のルールを以下の様に決めます。
・じゃんけんは勝敗がつくまでを1勝負とする。あいこを挟んだ場合も連勝数は継続する
・じゃんけんは常に自分と同じ連勝数の人間と行う。存在しない場合は現れるまで待機
・全員が自分の対戦相手を見つけ、じゃんけんを1勝負するまでを1回戦と数える
で、N人でX連勝者をつくるには何回戦行えば確定するか、という問題です。

最初のトーナメントでは、log(2)N 回戦で log(2)N 連勝者が作れます。
0連勝者、すなわち直前のじゃんけんで負けた人は初回以外常に N/2 人存在するので、2回戦目以降は毎回 N/2 人による敗者復活トーナメントが発生する感じになります。
N/2 人のトーナメントは Log(2)N-1 回戦で Log(2)N-1 連勝者を作り、これは Log(2)N 回戦目以降毎回1人ずつ供給されて、2人になった次のじゃんけんで Log(2)N 連勝者と0連勝者に別れます。

ログとかよく分かんないんで、Excelにぶっこんで計算させた方が早いです。

f:id:syaik:20190302201914p:plain



縦軸は何回戦目か、横軸は連勝数で、各数字はy回戦目にx連勝した人間が何人いるかを示しています。
1024人でやった場合、10回戦で10連勝者が出現し、13回戦で11連勝者、18回戦で12連勝者が出るってことですね。
一般的に、Nが十分に多ければ log(2)N 回戦で log(2)N 連勝、そこから+3回戦で+1連勝、+8回戦で+2連勝、+17回戦で+3連勝となります。
十分に大きくない場合は自分と同じ連勝者がいなくて待たされる人が増えるので、これより効率が落ちます。
100人でやると10連勝者が出るまでは30回戦。これくらいなら現実的かな?

人数と必要な回戦数はこちら

11 348
12 294
13 260
14 234
15 210
16 189
17 175
18 163
19 151
20 140
30 89
40 65
50 53
100 30
200 19
300 15
400 14
500 13


草野球でみんな集まったのに雨が降っちゃったときとかに、「じゃんけん163回勝負やろうぜ!」などと提案してみましょう。