math库由一组标准的数学函数构成,包括:
三角函数:(都是用弧度单位)
sin
cos
tan
asin
acos
deg(弧度转角度)
rad(角度转弧度)
等
指数和对数函数:
exp
log
log10
取整函数:
floor(向下取整)
ceil(向上取整)
max和min
伪随机数函数:
random
randomseed
变量:
pi
huge(Lua可以表示的最大数字)
可以用函数deg和rad来转换角度和弧度。如果使用角度单位,可以像这样重新定义三角函数:
local sin, asin, ... = math.sin, math.asin, ...
local deg, rad = math.deg, math.rad
math.sin = function (x) return sin(rad(x)) end
math.asin = function (x) return asin(rad(x)) end
...
math.random:
1、无参调用时,返回一个在区间[0,1)内均匀分布的伪随机实数
2、如果提供参数整数n,返回一个在区间[1,n]内的伪随机整数
3、提供两个整数参数 m和n,返回一个在区间[m,n]内的伪随机整数
函数randomseed用于设置伪随机数生成器的种子数,它的唯一参数就是这个种子数。通常使用当前时间作为种子数:
math.randomseed(os.time())
函数os.time返回一个表示当前时间的数字,一般这个数字表示从某个 时间点开始至今的秒数。
math.random函数使用了C标准库中的rand函数,在某些C 标准库的实现中,这个函数所产生的数字并不具备统计意义上的 均匀分布特性。Lua的某些 独立发行的版本中包含了更好的伪随机数生成器。