Lua的随机函数混乱问题

我正在尝试在 Lua 中设计一个游戏(这是我第一次尝试)。现在我被 math.random 和 math.randomseed() 函数卡住了。我已经查阅了 math 库,但它更让我困惑了。 我想要随机调用 3 个函数(也就是我希望随机调用三个函数)。 我应该如何使用 math.random() 函数来实现这个功能?

另外,哪个随机函数更好且更安全使用?是 math.random() 还是 math.randomseed()?

请帮帮我。

点赞
用户2604672
用户2604672

首先进行澄清。函数random.randomseed() 初始化了随机数生成器。这意味着在程序开始的某个地方调用它,通常是在第一次调用random.random()之前。

现在,为了解决您的问题并随机调用三个函数,您必须使用从random.random()生成的数字来调用这些函数(数字从0到1)。这是一种做法:

local function first()end
local function second()end
local function third()end

random.randomseed(os.time()) --使用时间初始化随机数生成器

local number = random.random()
if number < 0.3333 then
    first()
elseif number < 0.6666 then
    second()
else
    third()
end

现在,您可以在循环中这样做,以便多次调用函数。您还可以更改概率(在上面的代码中,从长远来看,调用first()的频率将类似于second()third())。如果您需要更频繁地调用其中一个函数,请调整if条件中的数字。

2014-10-25 09:49:47