Lev*_*han 1 random lua numbers
在Lua 5.2.1中,我尝试使用生成随机数
num = math.random(9)
Run Code Online (Sandbox Code Playgroud)
但是,每次我运行我的程序时:
num = math.random(9)
print("The generated number is "..num..".")
Run Code Online (Sandbox Code Playgroud)
我得到相同的号码.
brendan@osiris:~$ lua number
The generated number is 8.
brendan@osiris:~$ lua number
The generated number is 8.
brendan@osiris:~$ lua number
The generated number is 8.
Run Code Online (Sandbox Code Playgroud)
这很令人沮丧,因为每当我尝试生成一个新数字并重新启动程序时,我都会得到相同的序列.
是否有不同的生成数字的方式?
另外,我已经调查过了
math.randomseed(os.time())
Run Code Online (Sandbox Code Playgroud)
但我真的不明白.如果这确实是解决方案,你可以解释它是如何工作的,它做了什么,以及我会得到多少数字?
谢谢,
这对Lua来说并不特别.伪随机生成器通常这样工作:它们需要一个种子来启动它们生成的序列并不是真正随机的,而是实际上给定种子的确定性.这对于调试是一件好事,但对于生产,您需要以"随机"方式更改种子.一种简单而典型的方法是在程序开始时使用时间设置一次种子.