50/50の危険なギャンブル
「フィフティ・フィフティに賭ける」なんて言うとカッコ良いような気がします。伸るか反るか的な危うさを感じますが、覚悟を決めた気風のよさも感じます。
スポーツやゲームは別として、お金の話になると普通は勝つ確率が3割や4割で勝負を掛ける人はいません。逆に8割や9割で勝負を掛けない人もいません。でも、5割だと微妙です。6割でも慎重な人なら勝負しません。大体、7割以上で勝負し始めるのではないでしょうか。
ところが、ギャンブルを含め、この世の中で7割も勝率のあるものは余りお目にかかりません。新商品開発にしろ、新規事業にしろ、ビジネス上の不確定要素をクリアにしながら進めますが、それでも7割の勝率など見えてはきません。
そこで出てくる言葉が「フィフティ・フィフティ」です。まるで、自分の背中を押してくれる魔法の言葉のようにです。
このフィフティ・フィフティ(50/50)。一発勝負なら完全にギャンプルですが、何度も試行を繰り返すことができるなら、ギャンブルから収益の見込めるビジネスに変わるヒントが見つかるかも知れません。
フィフティ・フィフティ(50/50)の例
卑近な例はコインの裏表ですね。変な細工がしてないなら、表か裏かは50%の確率です。
コインが直立して立ってしまうことがあるでしょうが、非常に希なので無視します。また、厳密には表と裏のデザインによって重心が中心からずれている可能性もありますが、これも無視します。
ちょっと変わったところでランダムウォーク(酔歩)があります。ランダムウォークは360°どこでも向かうので正確にはフィフティ・フィフティではありません。しかし、方向を限定すれば右に向かう確率は50%、左に向かう確率は50%です。
また、数学的には何の意味もありませんが、「火星人がいる確率はフィフティ・フィフティで50%だ」といった言い回しもあります。確率が分からないから、大雑把で50%にしようという考えですね。よく映画の台詞に出てきます。
フィフティ・フィフティ(50/50)の定義
さて、フィフティ・フィフティと言っても、勝つ確率と負ける確率が同じことなのか、利益と損失が同じことなのかよく分かりませんよね。例えば、勝つ確率が10%でも利益が損失の10倍あればほぼ収支トントンなので、これもフィフティ・フィフティと考えていいでしょう。
・勝つ確率が50%で利益が1円。負けた時は-1円でも期待値は0。
>rpn .5 1 * .5 -1 * +0
・勝つ確率が10%で利益が9円。負けた時は-1円でも期待値は0。
>rpn .1 9 * .9 -1 * +0
つまり、肝心なのは勝つ確率ではなくて、ギャンブル毎にいくら利益が上がるかを数学的に記した期待値になります。この期待値が0より上ならプラス、下ならマイナス、丁度なら収支トントンです。
期待値は勝つ確率×利益-負ける確率×損失と考えます。
コインを投げ続けたら
コインを1回だけ投げて表が出るかどうかは、完全に運任せのギャンブルになりますが、10回も振れば大体5回程度、100回振れば50回程度は表が出るはずです。実際に試してみましょう。
手でコインを投げて、表と裏を数えるのは大変なので、rpnでシミュレーションします。まず表を1、裏を0として、ランダムにデータを作ります。以下のようなrpn式で簡単に計算できます。
まず、最初の「2 ?」で1か2の数字を50%の確率でランダムに出します。次に1を引くことで0か1にしています。
rpnでコイン投げ
では、コインを10回投げてみましょう。-rオプションで簡単ですね。
0
0
1
1
1
1
0
1
0
0
表の1が5回、裏の0が5回出たことが分かります。では、100回投げるとどうなるでしょうか。何回表が出たかを計算させてみましょう。表の1を合計すれば答えが出ます。
52
52回でしたね。このように実際にはピッタリ50回とはならず、必ずブレてきます。先ほどの10回試行の例は運がよかったわけです。理論値との誤差はどれくらいでしょう。
0.0384615
理論値は50回なので誤差は3.8%です。結構、よい精度ですが、たまたまかもしれません。実際に、このような試行を何度も繰り返すとどれくらいのブレが生じるのでしょうか。
大数の法則
では、ブレを考察するために何回か繰り返してみることにします。まずは10回の試行を100回行ないます。なお、sleepで1秒以上待ってから、次の処理を進めています。
>rpn 1 -c sleep
この2行を"coin.bat"に100回繋げてコピーして、バッチ処理します。同じように100回の試行を100回と1000回の試行を100回繰り返してみます。ファイルの"count.txt"にそれぞれのケースの計算結果が残されていきます。
10回試行、100回試行、1000回試行の各種数値は次の表のようにまとめられます。
================================
10回試行 100回試行 1000回試行
================================
理論値 5 50 500
平均値 4.97 50.37 501.83
変動係数 0.32 0.09 0.03
誤差率 0.006 -0.0074 -0.00366
誤差率を見て分かるように、試行回数が増えれば増えるほど理論値に近づいていることが分かります。このような現象を大数の法則といいます。
サイコロも1が出る確率は1/6ですが、6回振っても必ず1が1回出るとは限りません。しかし、60回、600回と振れば1/6の確率が示す数に近づいていくのと同じです。
ちなみに、それぞれの試行の幹葉表示も記しておきます。10回試行のときには表が1回しか出なかった(10%)ことが1度あったことが分かりますね。逆に9回も表が出た(90%)ことが2回あったことも分かります。
10回試行
0 | 122223333333333333344444444444444444455555555555555555555555555566666666666667777777777788899
100回試行では表が40回しか出なかった(40%)ことが3回、62回も表が出た(62%)ことが1回ありましたが、10回試行のときのようにドラマチックに表が出ない、あるいは表が出るといったことはなくなります。
100回試行
4 | 0003333334455666666677888888888888899999999995 | 000000000111111111122222233334444555555566667777889999
6 | 2
1000回も試行するとますます理論値500回の周りに集まってきます。一番少ないケースで468回です(46.8%)。多いときで535回です(53.5%)。1000回も投げたのに表が10%しか出ないなんてことはイカサマでない限り、まず起こりえません。
1000回試行
46 | 847 | 2346
48 | 0111333357889
49 | 000011233333444556666788899
50 | 001133344455666677889999
51 | 000022223334455778999
52 | 12466678
53 | 25
ついでに10000回の試行も試してみましょう。表が出る理論値は5000回ですが、平均値は4998.16でした。誤差率は-0.000368135です。理論値との誤差はほとんどありません。幹葉表示は次のとおりです。
10000回試行
491 | 18492 | 1244469
493 | 223677
494 | 488
495 | 3368
496 | 01145
497 | 012445779
498 | 0245668999
499 | 0014455
500 | 34556
501 | 1222345577
502 | 22346
503 | 0359
504 | 12345
505 | 01669
506 | 33347
507 | 0557
508 | 123
509 | 8
全ての数が500±10で収まっているようです。表が最も少ないときで4911回の49.1%、最も多いときで5098回の50.9%です。理論値から1%のズレもないことになります。
今回の実験では、10回コインを投げて5±1になる確率は65%でも、1000回コインを投げて500±10になる確率は100%になったわけです。
次は…
さて、このコイン投げを利用して、フィフティ・フィフティのギャンブルをするとどうなるのでしょうか。表が出れば1円儲かり、裏が出れば1円損するギャンブルです。
大数の法則で表の出る確率は50%、裏が出る確率も50%のフィフティ・フィフティなことは分かります。同時に利益と損失の比率も50対50ですから、完全なフィフティ・フィフティです。
見た目に儲かるか損するかは50%です。長く続ければ収支トントンになるような気がします。つまり、得にならないが損もしない…。
さて、結果はどうなったのでしょうか。
rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。
sleepはカレンダー・システムパッケージに同梱されています。errはビジネス統計(単回帰編)に同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。