《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())

posted @ 2014-08-07 17:31  Le Ciel  阅读(180)  评论(0编辑  收藏  举报