前提・実現したいこと
マーチンゲール法のシミュレーションをrubyでやろうとしています。
[1つ目の作業]
所持金・賭ける金額・目標金額を設定します。
所持金が0になるか、目標金額に達したら処理を終わります。
※賭け金が所持金を上回る場合(例:所持金が¥8,000,賭け金が¥16,000)には,全額を賭けるものとします。
処理が終わった時点で出た所持金を、
・目標金額に達した
・負けた
に分けて、それぞれの回数をカウントします
[2つ目の作業]
上記の工程を終了条件を満たすまで繰り返します。
最後に
・目標金額に達した
・負けた
ときの確立と
・終了条件を満たした時点での所持金X
を出力します。
[賭けのルール]
赤と黒のみのルーレットを想定(確率は1/2)
指定した色なら勝ち、違うなら負け
・勝った場合
掛け金を所持金に足す
掛け金を一番最初の額に戻す
・負けた場合
掛け金を所持金から引く
掛け金を二倍にする
発生している問題・エラーメッセージ
下記に記した箇所まではあっていると思うのですが、終了条件を満たすまで繰り返す方法と終了条件を満たした時点での所持金X の出力の仕方が分かりません。
該当のソースコード
Ruby言語
print "X:" #所持金
x = gets.chomp.to_i
v = x
print "Y:" #最初の賭け金
y = gets.chomp.to_i
u = y
print "Z:" #目標金額
z = gets.chomp.to_i
i = 0
a = 0
b = 0
//終了条件を満たすまで繰り返す
?????
until v == 0 || v >= z do
i += 1
roulette = rand(2)
i_choice = rand(2)
if roulette == i_choice
v += u
u = y
else
v -= u
u *= 2
end
end
if v >= z
a += 1
else
b += 1
end
v = x
u = y
end
puts [a,b]
試したこと
繰り返し回数をあらかじめ決めn.times do で試行したところ3つの求めたい出力のうち前2つは出力できました。
補足情報(FW/ツールのバージョンなど)
クラスを使わずに実装したいです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/24 05:58
2020/06/24 06:47