首页 > 代码库 > 【转】lua random()

【转】lua random()

先来看看这两段代码:

math.randomseed(os.time())
for i=1,10 do
 n = math.random(10)
 print(n)

运行结果是:

6
3
2
10
7
5
4
3
4
10

for i=1,10 do
 math.randomseed(os.time())
 n = math.random(10)
 print(n)
end

运行结果是:

6
6
6
6
6
6
6
6
6
6

结论:要多次运行math.random()获取不同结果,不能把math.randomseed()和它写到一个循环内,最好不要把它写到循环,而是作为初始化的数据。

再来看一下代码①,多次运行后发现,所有的第一个结果都是6,也就是说,lua的随机函数,每次随机出来的第一个值,是不可靠的,如果我们想利用随机函数,最好放弃第一个值,从第二次的结果开始。

这同时印证了上面的结论,把seed写 到和random一个循环内,每次运行random都算做是第一次执行,所以出来的值是相同的。

【转】lua random()