我正在尝试写一些模仿the游戏系统的东西。如果您对此不熟悉,那就是“确定的事情!” (不是确定的东西)用于投币游戏的下注系统,您每次输注都会加倍下注,希望在第一次获胜时将您所有的输钱赢回。
因此您的赌注将变为$ 10->损失-> $ 20->损失-> $ 40->损失-> $ 80->赢!-> $ 10 ...
简单吧?我认为逻辑将是:
rand(0..1)
。0是亏损,1是胜利。我这样写:
def flip(bet)
if rand(0..1) == 0 then
$balance += bet
else
$balance -= bet
flip(bet*2)
end
end
然后我跑flip(10)
了1000次,只是为了看看这个投注系统有多有效。
问题是我总是得到完全相同的结果。我将运行该程序十次,并且前五个结果将始终为1010、1020、1030、1040、1050 ...所以出了点问题。但是我真的看不出来。逻辑对我来说似乎很好。
只是为了测试,我删除了递归调用line flip(bet*2)
。相反,我只是进行了1,000次常规下注。并以您期望的方式运行,每次都有不同的结果。
那么这是怎么回事?
从逻辑上看,它似乎会递归下注直到您获胜。这样看来您的余额每次都会增加10,因此是“ 1010、1020、1030、1040、1050”。
如果在行puts $balance
之前放置a ,则flip(bet*2)
可以看到余额在上升和下降。
我想这就是投注系统的重点。我认为该方法的随机部分没有任何问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句