Lua 生成随机数
math.randomseed(tostring(os.time()):reverse():sub(1, 7))
local r = math.random(1,10);
就是把 time返回的数值字串倒过来(低位变高位), 再取高位7位。 这样, 即使 time变化很小, 但是因为低位变了高位, 种子数值变化却很大,就可以使伪随机序列生成的更好一些
以生成6位随机数为例
local rchars = {"1","2","3","4","5","6","7","8","9","0"}
local rc = ""
for i=1, 6 do
local r = math.random(1,#rchars);
rc = rc..rchars[r]
end
以上方式多次申请的时候,大概率会出现相同的随机数
然后就可以采用一开始的方式进行优化
local rchars = {"1","2","3","4","5","6","7","8","9","0"}
math.randomseed(tostring(os.time()):reverse():sub(1, 7))
local rc = ""
for i=1, 6 do
local r = math.random(1,#rchars);
rc = rc..rchars[r]
end
这样得到的随机数就比较分散随机了。