ウィナーズ投資法のシミュレーション(c++)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
ロリポップ! はコスパのよい初心者向けサーバーです~

はじめに

※目次用の記事:ギャンブルの賭け方の種類をまとめてみた

この記事では、ウィナーズ投資法の紹介と、そのシミュレーション結果を示す

ウィナーズ投資法とは

最小の賭け金額(例えば1)を自分で設定しておく
負けた時に賭けた金額を覚えておくための数列を用意する
※最初は、勝負が始まっていないので数列の中身は空と考える。数列:{}

勝負の最初の賭け金額は1とする

負けた場合

1回目負けた場合、数列の右側に数字の1を加える。数列:{1}

2回目の勝負のかけ金額も1とする
2回目も負けた場合(2連敗)、数列の右側に数字の1を加える。数列:{1,1}

3回目以降の賭け金額は(数列の左端)×2を使う。
負けた場合は、数列の右側に、賭けた金額を加える。
例えば、3回目も負けた場合、数列:{1,1,2}

勝った場合:
数列の左端の数字を1つ消す。
賭け金額は、負けた時と同様で、(数列の左端)×2を使う

数列の数字が全部なくなった場合は、再び、賭け金額を1からスタートする。

ウィナーズ投資法の具体例

ルールだけ、説明してもイメージがつかめないと思うので、具体例を挙げる。

勝負 数列(前) 賭け金 勝敗 数列(後) 収支
1 {空} 1 × 1 -1
2 1 1 × 1,1 -2
3 1,1 2 × 1,1,2 -4
4 1,1,2 2 × 1,1,2,2 -6
5 1,1,2,2 2 1,1,2,2 -4
6 1,2,2 2 1,2,2 -2
7 2,2 4 2,2 2
8 2 4 × 2,4 -2
9 2,4 4 2,4 2
10 4 8 × 4,8 -6
11 4,8 8 4,8 2
12 8 16 8 18
  合計賭け金額 54      

 

ウィナーズ投資法の特徴

  • 負けの数と勝ちの数が等しくなる時、数列がなくなる

数列を使うという観点で、2in1法やモンテカルロ法2in1法に似ている。だが、数列の消え方が異なる。2in1法やモンテカルロ法は、勝った時に、負けていた2回分の損失を取り返す手法なので、勝った時は数列の数字を2つ消すが、ウィナーズ投資法は1つしか消さない。

モンテカルロや2in1と比べて、数列の消え方が緩やかなので、いつまでたっても決着がつかず、ズルズルと賭ける金額が膨らむ危険性が高い。

左端の2倍の数字を賭けているということは、勝った時は、以前負けた時の2倍のお金が手元に入るということ。

  • (賭けで得た金額)=(賭けで失った金額)×2

※数列がリセットされた直後に勝った場合や、数列がリセットされた直後一度負けてすぐに勝った場合は、この式が当てはまらない。すぐ勝った場合は収支:+1。一度負けてすぐに勝った場合は、±0。

※具体例からもこの式を理解することができる。(賭けで得た金額)+(賭けで失った金額)に対応する、賭けた金額の合計が54。(賭けで得た金額)-(賭けで失った金額)に対応する、最終的な収支が+18。54が18のピッタリ3倍になることから、この式が正しいことがわかる。

ウィナーズ投資法の検証

以下では2種類のプログラムを紹介する。

言語はC++で作った

※C言語としてコンパイルしても動かない

※このプログラムを組んだ人間は、大学時代に少しプログラムをかじった程度の戦闘能力しかない

※2017年10月追記

以下のプログラムを見返したら、ミスがあることおに気づきました。

勝った時のm_betの値を変更するという処理がすっかり抜けている。

時間がある時に修正する予定(修正完了)

ウィナーズ投資法の個別シミュレーション

 

プログラムで使用している変数の説明

マーチンゲール法(2倍賭け)の破綻までのシミュレーションで紹介したプログラムと同じ変数の置き方をしている

i_max:勝負の回数
w:賭けたお金の戻る倍率を指定。ここでは2倍を指定
p:勝率を指定。ここでは1/2の確率なので50を指定。

m_min:かけ金を指定
m_ini:最初の資金を指定

※ここではm_min=1でm_ini=1000と、最小の賭け金の1000倍を所持していると考えている。

例えば、最小の賭け金が1000円(千円)だとするなら、手元の軍資金は、1000000円(百万円)。割と現実的な設定だと思われる。

r:乱数(0~100の乱数)

※乱数rが勝率pより下の数で収まるなら勝ちの判定がでる。

そして、勝負を続けていくうちに、負け続けることもあるだろう。
そしてついに、賭けしようにも手持ちのお金が足りなくなるかもしれない。
この場合、これ以上勝負ができなくなり、プログラムは終了する。(破綻判定)

つまり、借金はNG

c:トータルの勝ち負けの差がどのくらいあるか調べる用

実際にプログラムを走らせると以下のような結果となる
勝負回数i_maxは100000(10万回)までとする

#倍率は2.000000              勝率は50.000000              最小の賭け金は1.000000  手持ちのお金は1000.000000
1回目    賭け金は1.000000            数列:    lose        win0-lose1           勝敗差-1              手持ちのお金は999.000000
2回目    賭け金は1.000000            数列:1/ win        win1-lose1           勝敗差0 手持ちのお金は1000.000000
3回目    賭け金は1.000000            数列:    win        数列リセッ           win0-lose0           勝敗差1 手持ちのお金は1001.000000
(省略)
180回目 賭け金は64.000000 数列:64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/
win win65-lose90 勝敗差-20 手持ちのお金は480.000000
181回目 賭け金は64.000000 数列:64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/
lose win65-lose91 勝敗差-21 手持ちのお金は416.000000
182回目 賭け金は128.000000 数列:64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/
lose win65-lose92 勝敗差-22 手持ちのお金は288.000000
183回目 賭け金は128.000000 数列:64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/128/ lose win65-lose93 勝敗差-23 手持ちのお金は160.000000
184回目 賭け金は128.000000 数列:64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/64/128/128/ lose win65-lose94 勝敗差-24 手持ちのお金は32.000000
次の勝負に必要な金額は128.000000です。184回目でゲームを終了します

※srand((unsigned)time(NULL));の部分で時間を参照した上で乱数を発生させている。そのため、実行するタイミングで結果が変化する。

ウィナーズ投資法の期待値シミュレーション

 

プログラムで使用している変数の説明

b_pro:破綻率
※ここでいう破綻率とは手持ちのお金が、賭けに耐えられない状況を意味する。借金してお金を用意することはできないとする。

i_exp: 破綻するまで何回勝負ができるかの期待値
m_exp: 勝負が終わった段階で持っているお金の期待値
k_max:試行回数。
※k_maxを大きくすればするほど、正確な期待値が求まる。

c_exp:勝敗差の期待値

以下では、k_max=100000、i_max=100000で指定。
試行回数10万回、勝負回数10万回。

結果は以下のようになった

勝負回数は100000
試行回数は100000
破たん回数は100000
破たん率は100.000000%
破たんするまでに行える勝負回数の期待値(i_exp)は208.805930
破たんする直前で持っているお金の期待値(m_exp)は745.977420
破たんした時の勝負差の期待値は-0.109150

破綻率が100%で、破たんするまでに行える勝負回数の期待値(i_exp)は208回。かなり早いスピードで資金が枯渇している。マーチンゲール法(2倍)よりも早い。

ウィナーズ投資法と同じくらいで破たんする手法は、マーチンゲール法(3倍)である。今までの負けを帳消しした上で、負ければ負けた分だけ、利益を出そうとする観点では似ている。

また、最初にあったお金である1000から700程度まで減っている。つまり損する可能性がある。

この理由ははっきりわかっていないが、おそらく数列の数字の増え方はそこまで激しくないので、徐々に資金が削られていくからだろう。

まとめ

  • ウィナーズ投資法は、損する危険性がある
  • 勝ちの数と負けの数が等しくなる時、利益を出す

関連記事

※目次用の記事:ギャンブルの賭け方の種類をまとめてみた

~Webサイトを自分で作ってみませんか?~

Webサイトを運営するにはサーバーが必須です。
このサイトは、エックスサーバー のサーバーを使用しています。
エックスサーバーは無料で10日間お試しができます。

  • このエントリーをはてなブックマークに追加

スポンサーリンク


コメント

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)