刚学习了lua中的随机数生成,简单谈一下lua随机数学习心得
一开始学习随机数的时候简单的以为lua语言生成随机数很方便,在编写代码后发现确实能生成随机数,但是多运行几次后发现生成的随机数都是一样的,是因为C生成的随机序列是固定的,导致了每次运行时获取的随机数是一样的,如下代码:(PS:下文中都是给出了生成10个随机数的代码)
for i=1,10 do
local n = math.random(1,100)--生成1-100中的任意数
print(n)
end
上述代码在lua中生成的随机数都是一样的,并不能满足我们的需求。这时我们需要配合随机化种子函数math.randomseed()
来使用。math.randomseed()
是用于设置随机数的种子。生成随机数的程序运行,我们需要赋予随机数的种子的准确性很关键。但是如果每次手动输入随机数种子,一是很麻烦,二是准确性也不高,我们常用赋给随机数的种子是运用系统时间作为一种简便可靠的标准,即os.time
。这便组合成我们需要的:math.randomseed(os.time())
这样便可以正常生成我们需要的随机数,如下代码:
math.randomseed(os.time()) --产生随机数机制
for i=1,10 do
local n = math.random(1,100)
print(n)--生成10个随机数