创建赔率计算器,数学随机函数(math.random)出现问题。

我正在尝试打印40% 对60%的赔率。我发现数学函数 math.random() 不支持小数,有人知道解决方法吗?

请查看我的代码和关于 math.random 的注释。


while (nFlip <= 99) do
    randomFlip = math.random (0,2.5) -- 尝试通过0-2.5来获取40%
      nFlip = nFlip + b
      print( randomFlip )
    if randomFlip == 2.5 then
        countHeads = countHeads + b
    end
点赞
用户148870
用户148870

只需使用不等式而不是等式。

if math.random(0,4) < 2 then
    -- 这将有 40% 的概率运行
end
2014-05-20 03:48:48
用户2582229
用户2582229

假设你想要 math.random() 生成的值在 0 到 2.5 之间,可以尝试使用:math.random() * 10 % 2.5

另外,如果你希望每次运行程序都能获得不同的结果,不要忘记使用:math.randomseed(os.time())

2014-05-20 03:56:25
用户869951
用户869951

我认为如果你使用以下代码:

if math.random() < 0.4 then
    -- 这个代码会被执行40%的时间
end

那么代码会更加清晰,因为 math.random() 函数返回一个0到1之间的浮点数,所以比较的关系与百分比是直接相关的。

2014-05-21 04:37:06