反社会的思考のススメ

【反社会的】[形容動詞]社会の道徳や規範から大きく外れているさま。 道徳、常識、法律、そういうものを超えた考え方を勧めたい。…勧めたかった。多分2019年2,3月はオンラインスロットのことばっかりやりそう。

協力でじゃんけんの負ける確率を減らせることについての考察(8人以上なら裏切った方が不利になる事の証明)

(この記事はパソコンでは正しく表示されていますがスマホでは正しく表示されない可能性があります。その場合はPC版の画面が表示されるようにすればいいはずです。やり方はググろう。)

じゃんけんをやったことが無い人は日本にはいないでしょう。
それほどに有名な遊びです。 といっても純粋に遊びとしてじゃんけんをすることは無く、ただのランダムに一人を選ぶための道具として行うことがほとんどです。

逆にランダムに1人を選ぶための方法は?と聞かれたら誰もがじゃんけんを挙げることでしょう。 そう、じゃんけんというのは公平なランダマイザーだと信じられているのです。

しかし実はじゃんけんというのは人々が思っているほどの公平性は全く無いのです。



信頼できる味方がいる時に敗率を減らせることの証明

例えばA君、B君、C君の3人でじゃんけんをして、負けた1人が面倒な役割を押し付けられるとします。
つまり「勝ったら得」じゃ無く「負けたら損」です。 この時、普通なら敗率は1/3です。

しかし、A君とB君が共謀してC君との決着がつくまで2人で同じ手を出し続けるとしたら、
AとBの敗率=(Cに負ける確率)×(Cに負けた後に相方に負ける確率)=1/2 × 1/2 =1/4
というようになり、負ける確率を下げることができます。
なお、この時A君とB君の敗率は1/4、C君の敗率は1/2となります。
(なお書きのなお書きとして、A君とB君の勝率も1/4、C君の勝率も1/2となります。なので「勝ったら得」のじゃんけんでは逆効果になります。)



たったこれだけの簡単な方法でじゃんけんは運ゲーから協力ゲーへと様変わりします。勿論n人のじゃんけんでも同様に、仲間を1人見つければ敗率は約半分( 1/2(n-1) )、2人見つければ約三分の一( 1/3(n-2) )です。

よって、信頼できる仲間がいれば敗率を抑えられることが分かりました。



信頼できる味方がいなくても敗率を減らせることの証明

ですが、これはまだ序の口です。ここで示したのは「信頼できる仲間がいれば公平性を損なう」ということです。 つまり信頼できる仲間が居ない場合については保証されていません。 先程の例で考えましょう。

AとBが完全協力体制なら敗率は1/4です。 A、B、Cの3人がいる状況で、AとBが協力すると見せかけてAが裏切ってBに勝つ手を出すこともあり得ます。
(2人は同じ手を出そうとしていたので相方がどの手を出すか知っている。)
その場合に起こりうるのは以下です。


①3人はあいこになる(確率1/3)
②A君のみ、あるいはA君とC君の2人が勝ち抜け(確率2/3)


①の時は当然Bは裏切られたことに腹を立てて協力関係は解消されてしまいます。つまりイカサマも何も無い真に公平なじゃんけんです。*1 つまり①が起こった後、Aが負ける確率は1/3です。


②の時はもう勝ち抜けてしまったのでAは負けようがありません。


そのため、Aの敗率は1/3 * 1/3 + 2/3 * 0 = 1/9 です。
…協力したら敗率1/4(25%)ですが裏切れば敗率1/9(11%)ですね。
この状況で協力してあげる人はよほどのお人好しでしょう。
裏切られたBの敗率は61%です。高っ。ちなみに無関係のCの敗率は28%です。(なぜか公平なじゃんけんの時より低い)

これが「信頼できる仲間が居ない場合」の例です。





一見不可能にも思える「信頼できる仲間が居なくても協力できる」ことをこれから示します。 信頼できなくても協力できる、とはどういうことでしょうか。答えはカンタンです。
裏切った方が損をする関係を築けばいいのです。

こんな協力関係を考えましょう。 k+1 人でじゃんけんをします。(計算の関係上 「k+1」 人とします。当然、勝った人は抜け、負けた人が残って最下位を決める「負けたら損」型のじゃんけんです。)
AとBは協力して誰かが勝ち抜けるまで同じ手を出し続けることにします。そして誰かが勝ち抜けてk人以下になったら協力を解いて平[ヒラ] *2でじゃんけんをします。

なぜこのような回りくどい協力関係を結ぶのかというと、「人数が減るほど裏切りが効果的」だからです。 ならいっそのこと人数が減ったら協力関係を解消するようにしてしまえば協力していないのですから裏切りようがありません。 これなら初期人数( k+1 人)の時しか裏切れません。



裏切った時の方が計算が楽なので先にやりましょう。例によってA君が裏切ります。 裏切る、ということは相方には勝てるということです。A君がパーを出し、B君がグーを出し、残りのk-1人はランダムに手を出します。k-1人の内誰もチョキを出さなければA君は勝ち抜けできます。 その確率は ({\frac{2}{3}})^{k-1} です。あいこになる確率は 1-({\frac{2}{3}})^{k-1} です。

また、裏切った場合当然協力関係は途切れるため、A君はB君がどの手を出すのかが全く分からなくなります。
そのため、あいこになった後はk+1人のガチンコ勝負です。 よってA君が裏切った時の敗北率は

{\Large {\frac{1}{k+1}} (1-({\frac{2}{3}})^{k-1}) }

です。



A君が裏切らない場合、k+1人の時は2人は同じ手を出すので、A君とB君をまとめて一つと見做し、(k+1人では無く)kグループでのジャンケンと考えることができます。(A君B君以外は1人で1グループ)

しかしA君B君グループが負けた場合、彼らは協力関係を解くので1グループが2人に分裂(?)します。 そういう考え方でA君の敗北率を求めると、


\begin{aligned}

&\quad \sum_{i=1}^{k-1} (kグループ中i組が負け)\times(自グループが負け)\times(その後負ける) \\
&= \sum_{i=1}^{k-1}  {\frac{ {}  _ k C _ i }{2^{k}-2}}\times {\frac{i}{k} }\times {\frac{1}{i+1}} \\
&= {\frac{1}{(2^{k}-2)k} }  \left(\sum_{i=1}^{k-1} {\frac{i}{i+1} } {}  _ k C _ i  \right) \\
&= {\frac{1}{(2^{k}-2)k} }  \left(\sum_{i=0}^{k} {\frac{i}{i+1} } {}  _ k C _ i    - {\frac{k}{k+1}}  \right) \\
&= {\frac{1}{(2^{k}-2)k} }  \left(2 ^ k - \sum_{i=0}^{k} {\frac{1}{i+1} } {}  _ k C _ i    - {\frac{k}{k+1}}  \right) \\
&    \left( \because 一般に2 ^ k = \sum_{i=0}^{k} {}  _ k C _ i = \sum_{i=0}^{k} {}  _ k C _ i({\frac{i}{i+1} }+{\frac{1}{i+1} })\right)\\
&= {\frac{1}{(2^{k}-2)k} }  \left(2 ^ k -  {\frac{1}{k+1} }\sum_{i=0}^{k} {}  _ {k+1} C _ {i+1}    - {\frac{k}{k+1}}  \right) \\
&    \left( \because 一般に{\frac{1}{i+1} } {}  _ k C _ i  = {\frac{k!}{(i+1)(k-i)!i!} } = {\frac{1}{k+1} }{}  _ {k+1} C _ {i+1} \right)\\
&= {\frac{1}{(2^{k}-2)k} }  \left(2 ^ k -  {\frac{1}{k+1} }(2^{k+1}-1) - {\frac{k}{k+1}}  \right) \\
&= {\frac{1}{(2^{k}-2)k} }  \left(2 ^ k -  {\frac{1}{k+1} }2^{k+1} - {\frac{k-1}{k+1}}  \right) \\
&= {\frac{1}{(2^{k}-2)k} }  \left(2 ^ k {\frac{k-1}{k+1} } - {\frac{k-1}{k+1}}  \right) \\
&= {\frac{1}{(2^{k}-2)k} }   (2 ^ k -1) {\frac{k-1}{k+1} } \\
&= {\frac{1}{k} } {\frac{2 ^ k -1}{2^{k}-2} }{\frac{k-1}{k+1} } \\
&= {\frac{1}{k+1} } (1-{\frac{1}{2^{k}-2} })(1-{\frac{1}{k+1} }) \\

\end{aligned}

ここまで考えれば手動でも計算できますが、プログラムで計算してみると以下のようになります。

(※k=2は k+1=3人のじゃんけんです。以下同様。)

k= 2
0.111111111111111 裏切り
0.250000000000000 協力 
k= 3
0.138888888888889 裏切り
0.194444444444444 協力 
k= 4
0.140740740740741 裏切り
0.160714285714286 協力 
k= 5
0.133744855967078 裏切り
0.137777777777778 協力 
k= 6
0.124044679600235 裏切り
0.120967741935484 協力 
k= 7
0.114026063100137 裏切り
0.107993197278912 協力

k=8(9人)以上での結果は⇒*3

なんとk=7、つまり8人の時点で裏切るより協力した方が敗率が低くなります。

驚くべきことに8人のじゃんけんで負ける確率は12.5%ではなく、10.7%となります。裏切りの余地も無く。

…もちろんこれはA君とB君だけが協力交渉ができる前提の話ではあります。他の6人もペアを組んでいれば敗率は12.5%に戻ります。

ですがしかし、これではもはやじゃんけんはライアーゲームであってランダムに1人を選ぶ方法として不適格と言っていいでしょう。

極論ライアーゲーム少数決のキノコ頭のように、A君が、B君C君D君その他4名に対して個別に「僕とペアになれば敗率が10.7%になるんだ」と言ってグーを出させてからA君が悠々とパーを出して一人勝ち、ということもあり得ます。

現実にはじゃんけんが廃れることはないと思われますが、じゃんけんの敗率を1.8%減らせる、ということは覚えておいて損はないでしょう。

なお、8人以上なら裏切る余地がないことが示されたので最善の協力手法は「8人以上残ってるなら協力し、7人以下で解消する」ということになります。

この時の確率は計算が非常に面倒くさく、プログラムを組んで計算したいとも思っていますので続報をお楽しみください。














*1:そもそもじゃんけんで出す手を示し合わせて決めておくのがイカサマかというと怪しいのですが。

*2:イカサマをせずに勝負するの意

*3:
 8
0.104608037392674 裏切る!
0.097604986876640 協力!

 9
0.096098155768938 裏切る!
0.089063180827887 協力!

 10
0.088544336829659 裏切る!
0.081898238747554 協力!

 11
0.081888205840347 裏切る!
0.075794602920703 協力!

 12
0.076033767696624 裏切る!
0.070530043966781 協力!

 13
0.070878046669339 裏切る!
0.065942116491567 協力!

 14
0.066324117927588 裏切る!
0.061908540732860 協力!

 15
0.062285907038076 裏切る!
0.058335113634052 協力!

 16
0.058689196572911 裏切る!
0.055147900326548 協力!

 17
0.055470975619981 裏切る!
0.052287980628023 協力!

 18
0.052578160040690 裏切る!
0.049707791960083 協力!

 19
0.049966168025770 裏切る!
0.047368511401069 協力!

 20
0.047597567000489 裏切る!
0.045238138380587 協力!