Lua math.random() 总是给出相同的数字?

Lua math.random() always gives the same number?

对于某个项目,我想要一个包含 0 或 1 的字符串。 所以我尝试了这个

local data = ""
for i=1, 5 do
    data = data .. math.random(2) - 1
end
print(data)

这个程序总是给出 10111 作为结果。所以在搜索之后我得到了这个类似的问题。 Link 所以我改变了我的程序,就像那个程序中提到的那样

local data = ""
for i=1, 5 do
    math.randomseed(os.time())
    data = data .. math.random(2) - 1
end
print(data)

还有这个

local data = ""
for i=1, 5 do
    math.randomseed(os.time())
    math.random(2)
    math.random(2)
    math.random(2)
    data = data .. math.random(2) - 1
end
print(data)

所以当我尝试这个时它也总是给出 1111100000 作为输出。为什么?? 以及如何更正它以便我可以在我的字符串中随机获得 0 或 1?

在循环前添加种子:

local data = ""
math.randomseed(os.time())
for i=1, 5 do
    data = data .. math.random(2) - 1
end
print(data)

如果您重新播种或重新运行您的程序,请确保已经超过 1 秒,因为 os.time() returns 时间以秒为单位,用整数表示。