如何在每次运行lua脚本时生成随机值

时间:2016-03-03 10:05:16

标签: linux lua lua-scripting-library

我写了一个名为" lua_rand_gen" 的lua脚本,其中包含以下代码:

function random_number_func()
    math.randomseed(os.time())
    return (math.random(100000000,999999999))
end

print (random_number_func())


当我在终端循环中运行 lua_rand_gen 脚本时,上面的函数没有生成如下所示的randome值:

for ((i=0;i<=5;i++)); do lua lua_rand_gen; done

717952767
717952767
717952767
717952767
717952767
717952767


我知道这是因为 os.time()不会改变到一秒钟。那么,如果运行lua脚本的时间差小于1秒,我怎么能得到lua中的随机数。

1 个答案:

答案 0 :(得分:0)

math.randomseed(os.time())移到功能之外。

在每次致电math.randomseed之前,您需要致电math.random,这似乎是一种常见的误解。这是错误的并且会破坏math.random的随机性,特别是如果你使用os.time()作为种子,因为种子将在一整秒内相同。