对于某些项目,我想要一个包含 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)
所以当我尝试这个时,它总是给出 11111
或 00000
作为输出。为什么??
以及如何纠正它以便我可以在字符串中获得随机 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()
返回以秒为单位的时间,用整数表示。
关于random - Lua math.random() 总是给出相同的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70508610/