マーチンゲール法のサンプルプログラムを作成してみた
マーチンゲール法のサンプルプログラムを作成してみました。
マーチンゲール法のサンプルプログラムを作成してみた
ギャンブルにおけるマーチンゲール法というのをご存知でしょうか。
負けたら掛け金を倍にしていくギャンブルの必勝法のアレですね。
今回はそのマーチンゲール法をプログラムで表現してみました。
細かい説明は後にして作成したプログラムを載せます。
作成したプログラムはこちらに格納しております。
https://github.com/Chico27/martingale-simulation
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 48 49 50 |
import random havingMoney = 10000 bet = 1000 probability = 0.5 applyRate = 2 maxLoop = 100 loopCt = 0 result = 0 nowBetting = bet f = open('result.txt', 'w') f.write('ゲーム数,bet数,勝ち負け,持っているお金\n') while loopCt < maxLoop and havingMoney > 0: loopCt += 1 winGame = True if random.random() < probability: winGame = False if winGame: havingMoney = havingMoney + nowBetting else: havingMoney = havingMoney - nowBetting f.write(str(loopCt)) f.write(',') f.write(str(nowBetting)) f.write(',') if winGame: f.write('◯') nowBetting = bet else: f.write('×') nowBetting = nowBetting * applyRate f.write(',') f.write(str(havingMoney)) f.write('\n') if havingMoney <= 0: f.write('破産しました\n') f.close() |
各変数について説明していくと、
havingMoney:持っているお金
bet:掛け金
probability:勝率
applyRate:倍率
maxLoop:ゲーム総数(掛け金が0にならなかった場合)
となっております。
プログラムを見て分かる通り、ゲーム数、bet数、勝ち負け、持っているお金が出力されるようになっています。
実際の出力例としてはこちらになります。
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 |
ゲーム数,bet数,勝ち負け,持っているお金 1,1000,◯,11000 2,1000,◯,12000 3,1000,◯,13000 4,1000,◯,14000 5,1000,×,13000 6,2000,◯,15000 7,1000,◯,16000 8,1000,×,15000 9,2000,◯,17000 10,1000,×,16000 11,2000,×,14000 12,4000,◯,18000 13,1000,×,17000 14,2000,◯,19000 15,1000,◯,20000 16,1000,◯,21000 17,1000,◯,22000 18,1000,◯,23000 19,1000,×,22000 20,2000,×,20000 21,4000,×,16000 22,8000,◯,24000 23,1000,×,23000 24,2000,◯,25000 25,1000,◯,26000 26,1000,◯,27000 27,1000,×,26000 28,2000,×,24000 29,4000,×,20000 30,8000,×,12000 31,16000,◯,28000 32,1000,◯,29000 33,1000,×,28000 34,2000,◯,30000 35,1000,◯,31000 36,1000,×,30000 37,2000,×,28000 38,4000,◯,32000 39,1000,◯,33000 40,1000,×,32000 41,2000,×,30000 42,4000,×,26000 43,8000,×,18000 44,16000,×,2000 45,32000,×,-30000 破産しました |
動かしてみると分かりますが、総ゲーム数を100にすると結構な確率で破産します。
今回の出力例では結構持ったほうです。
掛け金を実際の持ち金の10分の1にすると下手すれば10ゲーム前後で負けてしまいます。
最初に4連敗したらもう持ち金がなくなりますね。
これがマーチンゲール法はお金が持っていないと有利に進めないと言われる所以のようです。
私の今までの成果物はこちらです。
成果物一覧
ディスカッション
コメント一覧
まだ、コメントがありません