考虑以下LUA代码片段:为什么lua中的某些平台上的第一个随机数总是相同的?
local time = os.time()
for _= 1, 10 do
time = time + 1
print('Seeding with ' .. time)
math.randomseed(time)
for i = 1, 5 do
print('\t' .. math.random(100))
end
end
在Linux计算机上,其结果是,不出所料,随机数。但似乎至少在Mac OS X上,更改种子后的第一个随机数始终是相同的!
我想这是关系到事实的Lua依赖于C兰特用于生成随机数()函数,但没有任何人有一个解释?
编辑:这里是上述码的Linux机器上的输出的提取物(即,如预期的输出):
$ lua test.lua
Seeding with 1232472273
69
30
83
59
84
Seeding with 1232472274
5
21
63
91
27
[...]
在OS X光机,“播种后的第一个数字与......”一直是66
你是否在两台机器上使用相同的lua版本?也许是Mac OS X中的一个错误。 – 2009-01-20 16:25:23
是的,我使用最新的lua版本。 – Wookai 2009-01-20 17:08:55