1. 程式人生 > >Lua中math常用的api整理

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())即可,一般使用系統時間來作為隨機數種子!