我试图使用lua产生一个随机数,但它只是吐出最低值.例如,如果我运行: x = math.random(17,41) print(x) 它返回: 17 怎么了? Lua使用C运行时库伪随机数生成器.其属性取决于您的平台.例如,在某
x = math.random(17,41) print(x)
它返回:
17
怎么了?
Lua使用C运行时库伪随机数生成器.其属性取决于您的平台.例如,在某些版本的Windows上,生成器始终在伪随机序列的同一点进行初始化,因此在运行程序时始终可以获得相同的值序列(参见 http://msdn.microsoft.com/en-US/library/f0d4wb4t.aspx).您可以使用math.randomseed在其他地方启动伪随机序列.每次运行程序时,都可以使用os.time以不同的值初始化它(假设在运行之间允许至少一秒钟).
另请注意,在某些Windows C运行时库中,调用srand(或Lua中的math.randomseed)后得到的第一个伪随机值非常依赖于您传递的值.所以我建议调用math.random一次并在调用math.randomseed后忽略它的结果.