lua 随机数 math.random()和math.randomseed()用法

用法一:  不给范围,就随机算一个0~1之间的小数:

             

 

 

用法二:给一个参数,就取1~n之间的随机数

              

 

用法三:给两个参数,就取m~n之间的随机数

              

 

 

math.randomseed()用法:

    由于C中所产生的随机序列是固定的。也就是每次执行时取得的随机数是一样的

    lua的random函数只是对ansi c的随机函数的一次封装。所以依然存在这个问题

    在lua虚拟机启动的时候设置一个随机种子,让系统产生的随机序列不相同, 

    但使用randomseed的时候也还要注意一个问题,那就是做种子的数要足够的大,大于10000就行了。

 

解决:只要在lua虚拟机启动的时候调用一下randomseed(os.time())就可以解决这个问题了。

但是有个缺陷就是每次第一次调用时获取的随机数依然就固定的,至于原因就涉及到lua内部实现了。

解决方法很简单,就是在设置随机种子的时候调用一下random函数随后 就能正常获取随机数了

 

posted @ 2018-04-08 16:22  口头猿  阅读(3173)  评论(0编辑  收藏  举报