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)
所以当我尝试这个时它也总是给出 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()
returns 时间以秒为单位,用整数表示。
对于某个项目,我想要一个包含 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()
returns 时间以秒为单位,用整数表示。