我无法访问 Lua 4.0 中的 random()(不要问),所以我需要推出自己的随机数生成器。或者更确切地说,我必须推出另一个,因为我几年前实施的那个现在让我失望了。即我注意到重复值很糟糕。
我可以使用用 Lua 编写的任何建议或示例吗?仅供参考,这是我迄今为止一直在使用的:
seedobja = 1103515245
seedobjc = 12345
seedobjm = 4294967295 --0x100000000
function srandom(seedobj, fVal1, fVal2)
seedobj[1] = mod(seedobj[1] * seedobja + seedobjc, seedobjm)
local temp_rand = seedobj[1] / (seedobjm - 1)
if (fVal2) then
return floor(fVal1 + 0.5 + temp_rand * (fVal2 - fVal1))
elseif (fVal1) then
return floor(temp_rand * fVal1) + 1
else
return temp_rand
end
end
[编辑]
后来编辑删除。