Lua math.random无效

use*_*006 14 random lua

所以我正在尝试创建一些东西,我已经遍布整个地方寻找生成随机数的方法.但无论我在哪里测试我的代码,它都会产生一个非随机数.这是我写的一个例子.

local lowdrops =  {"Wooden Sword","Wooden Bow","Ion Thruster Machine Gun Blaster"}
local meddrops =  {}
local highdrops = {}

function randomLoot(lootCategory)
    if lootCategory == low then
        print(lowdrops[math.random(3)])
    end
    if lootCategory == medium then

    end
    if lootCategory == high then

    end
end

randomLoot(low)
Run Code Online (Sandbox Code Playgroud)

无论我在哪里测试我的代码,我都会得到相同的结果.例如,当我在这里测试代码http://www.lua.org/cgi-bin/demo时,它总是以"Ion Thruster Machine Gun Blaster"结束,并且不要随机化.就此而言,测试简单

random = math.random (10)
print(random)
Run Code Online (Sandbox Code Playgroud)

给了我9,有什么我想念的吗?

Yu *_*Hao 25

math.randomseed()在使用之前需要运行一次math.random(),如下所示:

math.randomseed(os.time())
Run Code Online (Sandbox Code Playgroud)

一个可能的问题是在某些平台中第一个数字可能不是那么"随机化".所以更好的解决方案是在使用它们之前弹出一些随机数:

math.randomseed(os.time())
math.random(); math.random(); math.random()
Run Code Online (Sandbox Code Playgroud)

参考:Lua Math Library