gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:32 29 4
gpt4 key购买 nike

我写了一个名为 "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 脚本时,上面的函数没有生成随机值,如下所示:

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

717952767
717952767
717952767
717952767
717952767
717952767


我知道这是因为 os.time() 直到一秒钟才改变。那么,如果运行 lua 脚本的时间差小于 1 秒,我如何在 lua 中获取随机数。

最佳答案

math.randomseed(os.time()) 移到函数外。

这似乎是一个常见的误解,您需要在每次调用 math.random 之前调用 math.randomseed。这是错误的,并且会破坏math.random 的随机性,尤其是当您使用os.time() 作为种子时,因为种子会整整一秒都一样。

关于linux - 每次运行lua脚本时如何生成随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768981/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com