わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

じゃんけんを4回やって,2回勝つ確率は?

いきなりですが問題です.

じゃんけんを4回やって,そのうち2回勝つ確率は,2分の1ですか?
1回やって勝つ確率は2分の1とします.

4÷2=2も,2÷4=0.5も,求め方としては間違いです.
「じゃんけんを4回」の勝敗をすべて書き出し,「2回勝つ」状況を数えてみます.

負負負負
負負負勝
負負勝負
負負勝勝…2回
負勝負負
負勝負勝…2回
負勝勝負…2回
負勝勝勝
勝負負負
勝負負勝…2回
勝負勝負…2回
勝負勝勝
勝勝負負…2回
勝勝負勝
勝勝勝負
勝勝勝勝

「2回勝つ」のは6通りと分かりました.
「1回やって勝つ確率は2分の1」より,上記16通りのいずれも同じ確率となるので,ちょうど2回勝つ確率は,6/16=0.375です.2分の1よりも小さくなります.二項係数を使うと,{}_4C_2/2^4と表せます.
さらにですが問題です.以下,「1回やって勝つ確率は2分の1とします.」は省略します.

じゃんけんを4回やって,そのうち2回以上勝つ確率は,2分の1ですか?

今度は次のようになります.

負負負負
負負負勝
負負勝負
負負勝勝…2回
負勝負負
負勝負勝…2回
負勝勝負…2回
負勝勝勝…3回
勝負負負
勝負負勝…2回
勝負勝負…2回
勝負勝勝…3回
勝勝負負…2回
勝勝負勝…3回
勝勝勝負…3回
勝勝勝勝…4回

2回以上は11通りです.すると確率は,11/16=0.6875となり,1/2よりも大きくなります.
一般化しましょう.

じゃんけんをmatch回やって,そのうちwin回以上勝つ確率が,2分の1になるのは,どんなときですか.

「じゃんけんをi回やって,そのうちj回以上勝つ確率」(ただし1\le j\le i)は,「じゃんけんをi回やって,勝ち数がj回を下回らない確率」と言い換えられますので,1-\sum_{k=0}^{j-1}\frac{{}_iC_k}{2^i}と表すことができます.
各ケースで勝率を求めるのは,Rubyスクリプトにさせましょう.いつものようにGistに置きました.
実行結果は次のとおりです.デフォルトでは,1≦match≦5に限定しています.chooseの値は2項係数,rate1の値は「match回やって,ちょうどwin回勝つ確率」,そしてrate2の値が「match回やって,そのうちwin回以上勝つ確率」です*1

p=1/2=0.5
win=0, match=1 : choose(1,0)=1 : rate1=1/2 : rate2=1/1=1.0
win=1, match=1 : choose(1,1)=1 : rate1=1/2 : rate2=1/2=0.5
win=0, match=2 : choose(2,0)=1 : rate1=1/4 : rate2=1/1=1.0
win=1, match=2 : choose(2,1)=2 : rate1=1/2 : rate2=3/4=0.75
win=2, match=2 : choose(2,2)=1 : rate1=1/4 : rate2=1/4=0.25
win=0, match=3 : choose(3,0)=1 : rate1=1/8 : rate2=1/1=1.0
win=1, match=3 : choose(3,1)=3 : rate1=3/8 : rate2=7/8=0.875
win=2, match=3 : choose(3,2)=3 : rate1=3/8 : rate2=1/2=0.5
win=3, match=3 : choose(3,3)=1 : rate1=1/8 : rate2=1/8=0.125
win=0, match=4 : choose(4,0)=1 : rate1=1/16 : rate2=1/1=1.0
win=1, match=4 : choose(4,1)=4 : rate1=1/4 : rate2=15/16=0.9375
win=2, match=4 : choose(4,2)=6 : rate1=3/8 : rate2=11/16=0.6875
win=3, match=4 : choose(4,3)=4 : rate1=1/4 : rate2=5/16=0.3125
win=4, match=4 : choose(4,4)=1 : rate1=1/16 : rate2=1/16=0.0625
win=0, match=5 : choose(5,0)=1 : rate1=1/32 : rate2=1/1=1.0
win=1, match=5 : choose(5,1)=5 : rate1=5/32 : rate2=31/32=0.96875
win=2, match=5 : choose(5,2)=10 : rate1=5/16 : rate2=13/16=0.8125
win=3, match=5 : choose(5,3)=10 : rate1=5/16 : rate2=1/2=0.5
win=4, match=5 : choose(5,4)=5 : rate1=5/32 : rate2=3/16=0.1875
win=5, match=5 : choose(5,5)=1 : rate1=1/32 : rate2=1/32=0.03125

またmatchが9と10のときの値は,次のようになります.

win=0, match=9 : choose(9,0)=1 : rate1=1/512 : rate2=1/1=1.0
win=1, match=9 : choose(9,1)=9 : rate1=9/512 : rate2=511/512=0.998046875
win=2, match=9 : choose(9,2)=36 : rate1=9/128 : rate2=251/256=0.98046875
win=3, match=9 : choose(9,3)=84 : rate1=21/128 : rate2=233/256=0.91015625
win=4, match=9 : choose(9,4)=126 : rate1=63/256 : rate2=191/256=0.74609375
win=5, match=9 : choose(9,5)=126 : rate1=63/256 : rate2=1/2=0.5
win=6, match=9 : choose(9,6)=84 : rate1=21/128 : rate2=65/256=0.25390625
win=7, match=9 : choose(9,7)=36 : rate1=9/128 : rate2=23/256=0.08984375
win=8, match=9 : choose(9,8)=9 : rate1=9/512 : rate2=5/256=0.01953125
win=9, match=9 : choose(9,9)=1 : rate1=1/512 : rate2=1/512=0.001953125
win=0, match=10 : choose(10,0)=1 : rate1=1/1024 : rate2=1/1=1.0
win=1, match=10 : choose(10,1)=10 : rate1=5/512 : rate2=1023/1024=0.9990234375
win=2, match=10 : choose(10,2)=45 : rate1=45/1024 : rate2=1013/1024=0.9892578125
win=3, match=10 : choose(10,3)=120 : rate1=15/128 : rate2=121/128=0.9453125
win=4, match=10 : choose(10,4)=210 : rate1=105/512 : rate2=53/64=0.828125
win=5, match=10 : choose(10,5)=252 : rate1=63/256 : rate2=319/512=0.623046875
win=6, match=10 : choose(10,6)=210 : rate1=105/512 : rate2=193/512=0.376953125
win=7, match=10 : choose(10,7)=120 : rate1=15/128 : rate2=11/64=0.171875
win=8, match=10 : choose(10,8)=45 : rate1=45/1024 : rate2=7/128=0.0546875
win=9, match=10 : choose(10,9)=10 : rate1=5/512 : rate2=11/1024=0.0107421875
win=10, match=10 : choose(10,10)=1 : rate1=1/1024 : rate2=1/1024=0.0009765625

じゃんけんをmatch回やって,そのうちwin回以上勝つ確率が,2分の1になるのは,matchが奇数で,かつwin=(match+1)/2の場合です.
3本勝負なら2勝,5番勝負なら3勝,7番勝負なら4勝を先にしたほうが勝ち,というわけです.「過半数を制してやっと勝利か」と思うものの,冷静に数を数えてみると,7番勝負(一方が4勝しても打ち切らない*2として)で「0勝から3勝まで」と「4勝から7勝まで」の場合の数がともに同じですので*3,公平な対戦形式と言えます.
自作のRubyスクリプトは,「1回やって勝つ確率」を2分の1以外の任意の値に設定できます.3分の1(あいこも勝ちでない)とし,じゃんけんをmatch回やって,そのうちwin回以上勝つ確率が,2分の1に最も近づくのはどんなときかを求めてみると,match<100のときにはmatch=98,win=33と出ました.

*1:便宜上,win=0のとき,すなわち「0回以上勝つ確率」は,常に1としています.

*2:打ち切った場合でも,確率は変わりません.そのことは,「0勝0敗」を出発点とする樹形図を作れば確認ができます.

*3:0勝を忘れがち!