《Programming in Lua 3》读书笔记(十四)
日期:2014.7.22
Programming in Lua 3 的第二部分已经看完了,现在进入第三部分:标准库的阅读
PartⅢ The Standard Libraries
18 The Mathematical Library
标准数学库
math 库包含如三角函数(sin,cos,tan),取幂和对数(exp,log,log10),伪随机函数(random,randomseed)等。
默认情况下,math库中的三角函数使用的是弧度制(radian),但是可以通过deg和rad函数在角度(degree)和弧度(radian)之前进行转换。而且可以通过重新定义三角函数实现使用角度制进行运算:
e.g. do 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 deg(asin(x)) end end
使用do end 结构实现一个chunk,使现有的改动不影响其余地方对math库的影响。
math.random函数的使用
有三种使用方法:不带参数、带一个参数、带两个参数。
1、不带参数
--no param local a = math.random() print(a) -- [0,1)之间的随机一个数
不带参数的时候,该函数返回[0,1)之间的一个数
2、带一个参数
--one param a = math.random(6) print(a) --[1,6] 之间的一个数
带一个参数的时候,返回值为1至传递的参数直接的一个数
3、两个参数
--two param a = math.random(6,10) print(a) --[6,10]
返回两个参数之间(可等于)的随机数
math.randomseed函数
可以设置随机数种子,使得每次调用的随机数会依据种子的不同而产生不同的随机数,可控。如果不设置随机数,直接使用random函数,会使得每次运行程序得到的随机数为同一个随机数,而加入了随机数种子通过设置不同的种子便可以得到不同的随机数。通常将随机数种子设置为系统时间是一个不错的选择:
math.randomseed(os.time())