Lua中math常用的api整理

在使用Lua进行开发的过程中,经常涉及到一些math数学库,这里对一些使用频率比较高的api进行整理:

1、math.min(x, ...)和math.max(x, ...):返回参数中的较小值、较大值。

local x, y = 10, 100
local min = math.min(x, y)
local max = math.max(x, y)
print(min, max)  -- 10  100

2、math.ceil(x)和math.floor(x):向上取整、向下取整。

local x = 10.5
local ceil = math.ceil(x)
local floor = math.floor(x)
print(ceil, floor)  -- 11   10

3、math.sqrt(x):返回x的平方根。

local x = 16
local sqrt = math.sqrt(x)
print(sqrt)  -- 4

4、math.abs(x):返回x的绝对值。

local x = -16
local abs = math.abs(x)
print(abs)  -- 16

5、math.fmod(x, y):取模运算,返回x除以y的余数。

local x, y = 16, 3
local fmod = math.fmod(x, y)
print(fmod)  -- 1

注:还有一个和math.fmod比较类似的math.modf(x),math.modf(x)是返回x的整数部分和小数部分,返回的第二个结果一定是浮点数。

local x = 10.56
local modf1, modf2 = math.modf(x)
print(modf1, modf2)  -- 10  0.56

6、math.pi:返回π的值。

local pi = math.pi
print(pi)  -- 3.1415926535898

7、math.pow(x, y):返回x的y次方。

local x, y = 2, 4
local pow = math.pow(x, y)
print(pow)  -- 16

8、math.random([m, [ ,n]]):返回一个随机数,当不带参数调用时, 返回一个【0, 1】区间内一致分布的浮点伪随机数,当以两个整数m与n调用时,返回一个【m, n】区间 内一致分布的整数伪随机数(值m-n不能是负数,且必须在 Lua 整数的表示范围内), 调用math.random(n)等价于math.random(1, n)。

math.randomseed(os.time())

print(math.random())  -- 返回一个0-1之间的随机数
print(math.random(6))  -- 返回一个1-6之间的随机数
print(math.random(10, 20))  -- 返回一个10-20之间的随机数

注:math.random应该和获取随机数种子的函数math.randomseed(x)配合使用,在使用math.random之前调用一下math.randomseed(os.time())即可,一般使用系统时间来作为随机数种子!

--------------------add on Oct. 14, 2019--------------------

生成随机数:

math.randomseed(tonumber(tostring(os.time()):reverse():sub(1,6)))
for i = 1, 5 do
    print(math.random(5))
end

 

参考云风大大的Lua5.3 参考手册!

你可能感兴趣的:(#,Lua,Lua使用笔记)