【发布时间】:2015-11-10 18:33:19
【问题描述】:
为什么这个函数的运行每次都输出相同的数字,我该如何解决?
function randomNumber()
number = math.random()
print(number)
end
randomNumber()
randomNumber()
编辑:我希望能够像这样运行这个函数两次,并且两次都得到一个唯一的随机数。
【问题讨论】:
为什么这个函数的运行每次都输出相同的数字,我该如何解决?
function randomNumber()
number = math.random()
print(number)
end
randomNumber()
randomNumber()
编辑:我希望能够像这样运行这个函数两次,并且两次都得到一个唯一的随机数。
【问题讨论】:
看起来像是播种问题。把它放在开头:
math.randomseed( os.time() )
【讨论】:
math.randomseed() 只是设置它给出的种子。 os.time() 以秒为单位返回一次当前时间,这对于种子来说始终是唯一且完美的。如果您希望随机数在多次运行中保持一致,则可以将其替换为特定数字。查看链接的网址以获取更多信息。
os.time() 开头的全局变量,并在您想要生成新的唯一种子时将其加一。
math.randomseed((("I4"):unpack(assert(assert(io.open("/dev/urandom")):read(4)))))