マーチンゲール(倍賭け法)について|Excel(エクセル)で学ぶデータ分析ブログ
統計学を学ぶと、必ずといっていいほど賭け事に応用したくなるものです(あくまで私見です)。
但し、身を持って経験をせずとも結論を導くことができるのも、また統計学の面白いところではないでしょうか。
下記では古典的な賭博必勝法である「マーチンゲール(倍賭け法)」について考察していきたいと思います。
■マーチンゲール(倍賭け法)とは?
Wikipedia より(一部編集)
最も古典的かつ有名な手法で、カジノ必勝法として永らく愛されてきた。
まず1単位賭け、負ければその倍の2単位、さらに負ければそのさらに倍の4単位、と賭けていき、一度でも勝てばただちに1単位に戻す、という手法。
試行回数に関係なく、勝った時には1単位を得ることになる。
文章ではイメージがしずらいため、下記のようにまとめました。
賭け対象はルーレットで、計算が煩雑になるので「0」や「00」なしの赤か黒かの2択とします。
※例はわかりやすくBETを1からはじめ、カジノっぽくなるように単位をドル建てとします。
賭け手順
①赤にBET「1$」
→勝:賭け金2倍の「2$」を得て手順①に戻る
→負:賭け「1$」を払い手順②へ(負債は1$)
②赤にBET「2$」
→勝:賭け金2倍の「4$」を得て手順①に戻る
→負:賭け「2$」を払い手順③へ(負債は1+2=3$)
③赤にBET「4$」
→勝:賭け金2倍の「8$」を得て手順①に戻る
→負:賭け「4$」を払い手順④へ(負債は1+2+4=7$)
④赤にBET「8$」
→勝:賭け金2倍の「16$」を得て手順①に戻る
→負:賭け「8$」を払い手順【N】へ・・・(負債は1+2+4+8=15$)
【N】赤にBET「N回×2$」
→勝:賭け金2倍の「BET×2$」を得て手順①に戻る
→負:賭け「BET$」を払い手順「N回+1」へ・・・(負債は1+2+4+8+・・・+N回×2=勝ち金-1$)
いかがでしょうか。
資金がある限り「絶対に」負けません。そう、勝ち続けるのです!
でも、こんな必勝法があったら勝ち逃げばかりされてしまい、たちまちカジノは潰れてしまうはずなのに、お客さんが儲かり過ぎて潰れたという話は聞いたことがありません。
結論から言いますと、下記の理由により、やはりカジノ側が勝つようになっているのです。
A:回数が増えるごとに倍賭けするため、途中で資金がショートする
B:「0」や「00」があった場合には「必ず勝つ」ということでもなくなる
C:賭け金に上限設定がある(テーブルリミット)
などでしょうか。
Cに関しては例えば上限が1,000$だったとすれば、仮に1$から始めても
「11回目」にはBETが1,024$となり上限を超えてしまいます。
Bに関しては計算がややこしいので省略。
Aに関しては下記項にて計算過程を図示しながら説明していきたいと思います。
■勝ちと負けのアルゴリズム
アルゴリズムと書くと小難しく感じますが、賭け手順に紹介した流れがそのままアルゴリズムとして使えますので、あとはそれをプログラムっぽく加工するだけです。
計算には統計ソフト「R」を使用しましたが、プログラムが冗長したので構成のみ箇条書きにて説明します。
①0~1の範囲で乱数を生成
→エクセルでいうrand()という関数を使います。専門用語では「一様分布」と呼んでおり、簡単に説明すると「決められた範囲内の数値が『等しく出現する』乱数」だと思って下さい。
例:1~10までの整数それぞれが出現する確率が等しく「1/10」である乱数。
②乱数を0.5以上→赤、0.5以下→黒とすることで赤と黒の出現確率を1/2とする。
(「以上」とすべきか「より上」とすべきかもややこしいので考えません)
③赤が出たら勝ち。黒が出たら負けと決める。
④あとは前述の「賭け手順」の通り。勝ちの場合は「BET×2$」を得て、負けた場合はBETを倍に増やし続ける。
⑤計算仮定をエクセルに出力する。
そうすると、下記のような結果が出力されます。
例:BET=1$から、手持ち金=1,000$、10回勝つまで続ける。
どうでしょうか。10回勝つまでに14回ゲームをし、手持ち金を10$増やすことに成功しました!
ん? 14回もドキドキして10$しか儲からないのでは割が合わないですか?
それもそのはず。勝った時に得られるリターンは最初の賭け金のみ。それでは割に合いません。ならば、BETを100$にしてみましょう。理論上では賭け金×10回勝つので1,000$の儲け。元手は2,000$に増えるはずです!
…はい。8回目で次のベットができなくなりました。つまり資金がショートしております。
こういった時に、「もし後1、2回トライするだけのお金があれば・・・」と考えたくなる場合も考慮して10回目まで出してますが、赤字を更に増やしております。大負けです。
こうなりますと元手を融かしたばかりか、更に倍近い借金を背負うことになり「カジノなんぞに来なければ」と愚痴のひとつも言いたくなります。
「こんなのディーラーがイカサ○※△□!?=%&$」と怒鳴りたくなる気持ちもわかりますが、
これは確率では十分に起こりうる、悪意のない公正な結果です。
5回連続で黒(負け)の出る確率=(1/2)の5乗=1/32=0.03=3%ということで、
「30回勝つまで続ければ、1度くらいは起きうるできごと」だとお考え下さい。
■負け越さないための元手とBET
前述では元手を倍にしたいがためにBETのレートを「元手の1/10=100$」に設定し、10回のトライで勝とうとしたために失敗をしました。
それでは、どの程度までBETを抑えることで、リスクを下げることができるでしょうか。
計算の前に、考え方から説明していきます。
重要な点は「黒(負け)が5回続く確率が3%で、これは30回勝とうとすれば1回は起きうる現象」だという点を理解することです。
①上記を踏まえ、黒(負け)が「こんなに連続しないだろう」という回数を決める。
②連続限界分だけ資金を準備するor低いBETから始める。
偶然では起き得ない可能性がどの程度かを決めるために、下記の表を作成しました。
左から、
・連続して同じ数値が出る回数
・その場合のBET額(1$から始めた場合)
・累積BET額(実際に支払う額)
・発生する確率
・10~100回勝とうとした場合に起きうる回数
となっております。青く着色している箇所は「黒(負け)が7回連続で出る確率」ですが、これは仮に100回トライしたとしても1回も出現しない確率になるので、このあたりを超えない資金を有していれば「勝てる」もとい「負けにくい」のではないでしょうか。
下記は1,000$を元手にした場合のBET額と、仮に7回失敗した場合に支払うことになる額です。
100回成功した際に得るリターンと、仮に一度でも黒(負け)が7回出現した場合の支払い額を比較すると、元手が1,000$とした場合にはBET 7$ (元手の0.7%)以下でないと賭け始めでショートする可能性が十分にあります。
勝ち抜けるという自身を持ってBET40$(元手の4%)で勝負した場合には一度でも7回続くと勝ち越した場合に得る利益よりも大きな損失が発生します。たった4%なんですね。
■まとめ
いろいろと考えた結果、この方法は割にあわないですね(あたりまえか)。
元手が1,000$あって、BET1$で100回やっても100$の儲け。仮にテーブルリミット(BETの上限)が1,000$だったとしても8$以上で賭け続けたらテーブルリミットにも引っかかることが想定されます(それで勝ち続けても800$の儲け)。
また、当たり前のことですがルーレットに100回も勝ち続けるのにどれだけ時間が掛かるでしょうか。100回勝つためにはおそらく200回くらいルーレットに挑戦し続ける必要がありますし、5分×200=1,000分=16時間と、現実的ではありません。
それでも、元手1,000$、BET=元手の0.7%を1日8時間100ゲームほど行い、
50回勝ったらやめるを毎日繰り返せば理論上では1日で350$の儲けになります。
しかしこれも2日目、3日目と日数を重ねていけば、必ず7回連続、8回連続同じ色という可能性は増えてきます。
(先にも述べておりますが、0や00を考慮してません)
これがRのプログラムでは10,000回のトライでも数秒とかからず出力されるので、現実にトライをせずシミュレーションを組むだけで得心しているが幸せだと感じました。
余談ですが5,000回ほど繰り返すと12回連続同じ色、なんて現象も出てきます。やっぱり賭け事に手を出さず堅実に働いたほうが無難ですね。
例:元手1,000$、BET1$~、5,000回勝つまで繰り返す。