Lua随机数生成

3

我在Lua中使用math.random()函数遇到了问题。 我尝试运行的代码是:

 for x = 1,5 do
    math.randomseed(os.time())
    math.random(); math.random(); math.random()
    value = math.random(0,9)
    print(value)
end

被打印出来的随机数总是相同的。

有什么可能的解决方案吗?我想要5个独立的随机数。


5
math.randomseed(os.time()) 放在循环体外。 - Dmitry Bychenko
1个回答

6

在循环之外只随机一次(初始化),然后多次使用:

math.randomseed(os.time()) -- random initialize
math.random(); math.random(); math.random() -- warming up

for x = 1,5 do
    -- random generating 
    value = math.random(0,9)
    print(value)
end

三个对生成器的热身调用也不需要在循环内部,但它们确实有作用。 - ryanpattison
@rpattiso:谢谢!我明白了。 - Dmitry Bychenko
@shiladitya basu 请考虑接受有帮助的答案。要接受答案,请单击最佳答案旁边的空心复选标记,这样做将增加您的声望并允许更多功能。有关更多详细信息,请参见声望常见问题解答此页面。此外,请考虑返回并接受过去的答案,这样做将增加您的声望并允许更多功能。有关更多详细信息,请参见声望常见问题解答 - zaph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接