加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 为什么我的递归函数总是使用相同的随机数?

发布时间:2020-12-17 02:55:01 所属栏目:百科 来源:网络整理
导读:我正在尝试写一些模拟鞅赌博系统的东西.如果你不熟悉这个,那就是“肯定的事
我正在尝试写一些模拟鞅赌博系统的东西.如果你不熟悉这个,那就是“肯定的事!” (不是一个肯定的事情)投币系统用于掷硬币游戏,每次输掉时你都会加倍投注,希望在第一场胜利时赢回所有损失的金钱.

所以你的赌注将是10美元 – >损失 – > 20美元 – >损失 – > 40美元 – >损失 – > 80美元 – >赢得! – > $10 …

简单吧?我认为逻辑将是:

>拥有一个起价为1,000美元的钱包变量.
>打赌.
>用兰特翻转硬币(0..1). 0将是一个损失,1是一个胜利.
>如果我赢了,请将赌注添加到我的钱包中.如果我输了,从我的钱包中减去赌注,然后再发一次新赌注.

我写这个:

def flip(bet)
    if rand(0..1) == 0 then
        $balance += bet
    else
        $balance -= bet
        flip(bet*2)
    end
end

然后我运行翻转(10)一千次,看看这个投注系统是多么有效.

问题是我总是得到完全相同的结果.我将运行该程序十次,前五个结果将始终是1010,1020,1030,1040,1050 …所以有些不对劲.但我真的看不出来;逻辑对我来说似乎很好.

只是为了测试一下,我删除了递归调用,行翻转(下注* 2).相反,我只是进行了一千次定期投注.这表现得像你期望的那样,每次都有不同的结果.

那么这里发生了什么?

解决方法

看看逻辑,看起来它会递归下注,直到你赢了.因此看起来你的平衡每次都会增加10,因此“1010,1050”.

如果您在翻转(下注* 2)线之前放置一个看跌期权余额,您可以看到余额上下波动.

我想这就是投注系统的重点.我不认为该方法的随机部分有任何问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读