数学の命題示しました

主に組合せ論について,読んだ本で出てきたことや,考えたことを書きます.

「指の本数限定ジャンケン」で負けにくい手の出し方の研究

2019年9月21日に(あんちべ! 俺がS式だ)@AntiBayesianさんが,次のようなツイートをしました.

引用:(あんちべ! 俺がS式だ)@AntiBayesian

社会性ゼロの人間に結婚式のパーティゲームを任せると「五回じゃんけんして勝利数多い方が勝ち、但し五回で合計13本しか指を使ってはいけない、つまりパーは最大2回しか出せないという『限定じゃんけん』です」とかやって、エンジニアの新郎新婦や友人は喜ぶが親御さんをポカンとさせるとかしてしまう

このツイートで書かれているゲームを「5回13本 - 限定ジャンケン」と呼ぶことにします.
ただし,問題を簡単にするための追加ルールとして n回分の手の出し方をお互い同時に出し合うものとします.
つまり,二人で n回同時にジャンケンして勝利数が多いほうが勝ち.ただし出せる指の本数は一人合計 m\ (0\leq m\leq 5n)本までというゲームを「 n m本 - 限定ジャンケン」と呼びます.

このゲームにおいて相手が全ての可能な手の出し方の中からランダムな手を出してくるとした場合に,できるだけ負けにくい出し方をいくつかの n,mについて調べます.
調べる方法は素朴に総当りをしました.

本題に入る前に,まず一般の n,mについて可能な手の出し方の総数について基本的なことを調べておきます.


組合せ論的な議論

以下で「{👊,✌,✋}から n回出す」という場合,順番を区別します.
例えば,(👊,✋,✋)と(✋,👊,✋)は違う出し方とします.

命題1
{👊,✌,✋}から n回出すときに,指の本数の合計が m本になるような出し方の総数は (1+x^2+x^5)^nにおける x^mの係数である.
例えば,5回13本 - 限定ジャンケンで出せる出し方,つまり(👊,👊,👊,👊,👊)や(✋,👊,✌,✋,👊)などを全部数えると,その数は
 (1+x^2+x^5)^5において x^{13}より高次の項を消したあと x=1とした値,つまり152通りあります.

また命題1から次のことも言えます.

命題2
{👊,✌,✋}から n回出すときに,指の本数の合計が m本になるような出し方の総数を J(n,m)する.このとき J(n,m)の母関数は以下のように書ける.
 \sum_{n\geq 0}\sum_{m_\geq 0} J(n,m)y^nx^m=\frac{1}{1-y(1+x^2+x^5)}

このような性質を調べはしたものの,以下で特に使うことはありません.(検算とかに使いました.)


計算機による総当り

5回13本 - 限定ジャンケンで可能な152通りの手の出し方には強さの非対称性があります.
例えば,出し方(👊,👊,👊,👊,👊)は152通り中45通りの出し方に負けます.
一方で,出し方(✋,👊,✌,✋,👊)は,152通り中50通りの出し方に負けます.
ただし,順番を変えただけの出し方は152通りの中に全て含まれるため,例えば(✋,👊,👊,👊,👊)と(👊,👊,👊,✋,👊)の強さは同じであることに注意しておきます.

そこでいくつかの n,mについて, n m本 - 限定ジャンケンで最も負けにくい出し方は何なのかを調べていきます.

以下の結果は, n=5とし,「 m(出せる指の本数の上限)」,「可能な出し方の総数」,「最も負けにくい出し方」,「その出し方に勝てるような出し方の総数」「敗率」を表にしています.
「最も負けにくい出し方」では,上記の理由から順番が違うだけの出し方は省略して一つのみ書いています.
指の本数が0本制限と1本制限の場合など, mが増えても状況が変わらない場合があります.それらは最も小さい mで代表することにします.
「敗率」は,負け数÷可能な出し方の総数で計算します.

実験結果( n=5
m 可能な出し方の総数 最も負けにくい出し方 負け数 敗率
0 1 👊,👊,👊,👊,👊 0 0
2 6 👊,👊,👊,👊,👊 0 0
4 16 👊,👊,👊,👊,👊 0 0
5 21 👊,👊,👊,👊,✋ 1 0.047619
6 31 👊,👊,👊,👊,✋ 1 0.0322581
7 51 👊,👊,👊,👊,👊
👊,👊,👊,👊,✋
5 0.0980392
8 56 👊,👊,👊,👊,👊
👊,👊,👊,👊,✋
5 0.0892857
9 86 👊,👊,👊,👊,👊 5 0.0581395
10 97 👊,👊,👊,👊,👊
👊,👊,👊,✋,✋
15 0.154639
11 117 👊,👊,👊,👊,👊 15 0.128205
12 147 👊,👊,👊,👊,✋
👊,👊,👊,✋,✋
33 0.22449
13 152 👊,👊,👊,👊,✋ 33 0.217105
14 182 👊,👊,👊,👊,👊
👊,👊,👊,👊,✋
45 0.247253
15 192 👊,👊,👊,👊,👊
👊,👊,👊,👊,✋
55 0.286458
16 202 👊,👊,👊,👊,👊 55 0.272277
17 222 👊,👊,👊,👊,👊 75 0.337838
19 232 👊,👊,👊,👊,👊
👊,👊,👊,👊,✌
👊,👊,👊,👊,✋
👊,👊,👊,✋,✋
85 0.366379
20 237 👊,👊,👊,👊,👊
👊,👊,👊,👊,✌
👊,👊,👊,👊,✋
👊,👊,👊,✋,✋
90 0.379747
22 242 👊,👊,👊,👊,👊
👊,👊,👊,👊,✌
👊,👊,👊,👊,✋
👊,👊,👊,✌,✌
👊,👊,👊,✌,✋
👊,👊,👊,✋,✋
👊,👊,✌,✋,✋
👊,👊,✋,✋,✋
👊,✋,✋,✋,✋
95 0.392562
25 243 任意の出し方 96 0.395062


思ったこととか

結局,5回13本 - 限定ジャンケンでは👊を4回,✋を1回出しとけばいいと思います.
指の本数の上限を設定するということは,✋が出しにくくなるということなので, 👊が強い環境になっていました.
この記事は,実験してみたというだけなんですが,ここから何かさらに理論的なことを調べれたらいいなと思ってます.

この限定ジャンケンの変種として,「両プレイヤーの出せる指の本数の合計に上限が設定されたジャンケン」はどうでしょうか.