当前位置 : 主页 > 网络编程 > lua >

在lua中找到一个随机数

来源:互联网 收集:自由互联 发布时间:2021-06-23
我试图使用lua产生一个随机数,但它只是吐出最低值.例如,如果我运行: x = math.random(17,41) print(x) 它返回: 17 怎么了? Lua使用C运行时库伪随机数生成器.其属性取决于您的平台.例如,在某
我试图使用lua产生一个随机数,但它只是吐出最低值.例如,如果我运行:

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后忽略它的结果.

网友评论