第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但有一些区别。
第四版针对 Lua 5.3,可在 Amazon 和其他书店购买。
购买本书,您还可以帮助支持 Lua 项目。
用 Lua 编程 | ||
第三部分。标准库 第 18 章。数学库 |
在本章(以及关于标准库的其他章节)中,我的目的不是给出每个函数的完整规范,而是向您展示该库可以提供哪种功能。为了阐述清楚,我可能会省略一些微妙的选项或行为。主要思想是激发您的好奇心,然后可以通过参考手册来满足您的好奇心。
math
库包含一组标准数学函数,例如三角函数(sin
、cos
、tan
、asin
、acos
等)、指数和对数(exp
、log
、log10
)、舍入函数(floor
、ceil
)、max
、min
,以及变量 pi
。数学库还定义运算符 `^
´ 作为指数运算符。
所有三角函数都以弧度为单位工作。(在 Lua 4.0 之前,它们以度为单位工作。)您可以使用函数 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 deg(asin(x)) end ...
math.random
函数生成伪随机数。我们可以用三种方式调用它。当我们不带参数调用它时,它将返回一个均匀分布在区间 [0,1) 中的伪随机实数。当我们只带一个参数(整数 n)调用它时,它将返回一个整数伪随机数 x,使得 1 <= x <= n。例如,您可以使用 random(6)
模拟骰子的结果。最后,我们可以使用两个整数参数 l 和 u 调用 random
,以获得一个伪随机整数 x,使得 l <= x <= u。
你可以使用 randomseed
函数为伪随机生成器设置种子;其唯一的数字参数是种子。通常,当程序启动时,它会使用固定种子初始化生成器。这意味着,每次你运行程序时,它都会生成相同的伪随机数序列。对于调试来说,这是一个不错的特性;但在游戏中,你会一次又一次地遇到相同的情况。解决此问题的常用技巧是使用当前时间作为种子
math.randomseed(os.time())(
os.time
函数返回一个表示当前时间的数字,通常是自某个纪元以来的秒数。)
版权所有 © 2003–2004 Roberto Ierusalimschy。保留所有权利。 |