丁半博打の必勝法?
マーチンゲール法は丁半博打でまず1単位賭け、負ければその倍の2単位、さらに負ければそのさらに倍の4単位、と賭けていき、一度でも勝てばただちに1単位に戻す、という手法です。この方法ならいくら連敗をしても1回勝てば負けを取り戻すことができます。この方法は本当に負けない方法なのでしょうか?
マーチンゲール法のリスクは連敗をすると賭け金が倍々と増えていき、破産する可能性があることです。実際にどうなるのかシミュレーションするプログラムを作成してみました。
まず勝敗を決めるメソッドです。0か1の乱数を生成して1なら勝ち、0なら負けです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public partial class Form1 : Form { Random r = new Random(); bool IsWin() { int i = r.Next(2); if(i == 0) return false; // 0なら負け else return true; // 1なら勝ち } } |
所持金は10,000円として、最初の賭け金は100円とします。負けたときは賭け金を2倍にして勝ったときは100円に戻します。これを10,000回繰り返します。途中で所持金が0円以下になったら破産です。
最終的な所持金と最高時の金額、破産したときは何回目の勝負なのかとそのときの賭け金、連敗数を表示させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { int start = 100; // 最初の賭け金 int moneyCarried = 10000; // 所持金 int bet = start; // 賭け金 int successiveDefeatsCount = 0; // 連敗数 List<int> moneyCarrieds = new List<int>(); bool isBankruptcy = false; // 破産したかどうか? int i; for(i = 1; i <= 10000; i++) { moneyCarried -= bet; if(IsWin()) { moneyCarried += bet * 2; bet = start; successiveDefeatsCount = 0; } else { bet *= 2; successiveDefeatsCount++; } moneyCarrieds.Add(moneyCarried); if(moneyCarried <= 0) { isBankruptcy = true; break; } } string str = ""; if(isBankruptcy) str += String.Format("あなたは{0}回目の賭けで {1:#,0}円賭けて破産しました。{2}連敗です。\n", i, bet, Math.Log(bet/start, 2)); str += String.Format("最終的な所持金は{0:#,0}です。所持金最高額は{1:#,0}円でした。\n\n", moneyCarried, moneyCarrieds.Max()); string oldText = richTextBox1.Text; richTextBox1.Text = oldText + str; } } |
結果はこうなった!
最初の賭け金は100円、所持金は10,000円で10,000回勝負をします。10回のシミュレーションを繰り返してみましたが、ほとんどの場合途中で破産してしまいます。10,000回もやればどこかで大きな連敗があるものです。
出力結果
あなたは7回目の賭けで 12,800円賭けて破産しました。7連敗です。
最終的な所持金は-2,700です。所持金最高額は9,900円でした。
あなたは313回目の賭けで 51,200円賭けて破産しました。9連敗です。
最終的な所持金は-25,300です。所持金最高額は25,800円でした。
勝ち逃げ成功!
最終的な所持金は515,400です。所持金最高額は515,400円でした。
あなたは38回目の賭けで 12,800円賭けて破産しました。7連敗です。
最終的な所持金は-1,200です。所持金最高額は11,500円でした。
あなたは72回目の賭けで 25,600円賭けて破産しました。8連敗です。
最終的な所持金は-11,800です。所持金最高額は13,700円でした。
あなたは330回目の賭けで 51,200円賭けて破産しました。9連敗です。
最終的な所持金は-23,800です。所持金最高額は27,300円でした。
あなたは131回目の賭けで 25,600円賭けて破産しました。8連敗です。
最終的な所持金は-8,500です。所持金最高額は17,000円でした。
あなたは653回目の賭けで 51,200円賭けて破産しました。9連敗です。
最終的な所持金は-8,300です。所持金最高額は42,800円でした。
あなたは67回目の賭けで 25,600円賭けて破産しました。8連敗です。
最終的な所持金は-12,700です。所持金最高額は12,800円でした。
あなたは7回目の賭けで 12,800円賭けて破産しました。7連敗です。
最終的な所持金は-2,700です。所持金最高額は9,900円でした。
所持金を10万円に増やしたら?
所持金を10万円に増やしたらどうなるかもシミュレーションしてみましたが、やはり破産することが多いことがわかります。10,000回もやれば10連敗は普通に起きると考えたほうがよさそうです。
出力結果
あなたは346回目の賭けで 204,800円賭けて破産しました。11連敗です。
最終的な所持金は-86,600です。所持金最高額は118,100円でした。
勝ち逃げ成功!
最終的な所持金は602,700です。所持金最高額は602,700円でした。
勝ち逃げ成功!
最終的な所持金は594,000です。所持金最高額は600,300円でした。
あなたは789回目の賭けで 204,800円賭けて破産しました。11連敗です。
最終的な所持金は-64,400です。所持金最高額は140,300円でした。
あなたは1466回目の賭けで 204,800円賭けて破産しました。11連敗です。
最終的な所持金は-34,600です。所持金最高額は170,100円でした。
あなたは8789回目の賭けで 819,200円賭けて破産しました。13連敗です。
最終的な所持金は-285,000です。所持金最高額は534,100円でした。
あなたは151回目の賭けで 204,800円賭けて破産しました。11連敗です。
最終的な所持金は-99,000です。所持金最高額は105,700円でした。
あなたは181回目の賭けで 204,800円賭けて破産しました。11連敗です。
最終的な所持金は-96,700です。所持金最高額は108,000円でした。
あなたは5576回目の賭けで 409,600円賭けて破産しました。12連敗です。
最終的な所持金は-27,300です。所持金最高額は382,200円でした。
あなたは2824回目の賭けで 409,600円賭けて破産しました。12連敗です。
最終的な所持金は-169,900です。所持金最高額は239,600円でした。