Lua 的数学库(math 库)提供了一系列常用的数学函数,用于执行各种数学运算。以下是一些常见的 math 库函数:

1. 基本数学运算:
   - math.abs(x): 返回 x 的绝对值。
   - math.ceil(x): 返回不小于 x 的最小整数。
   - math.floor(x): 返回不大于 x 的最大整数。
   - math.max(x, y, ...): 返回参数中的最大值。
   - math.min(x, y, ...): 返回参数中的最小值.
local x = -5.67
print(math.abs(x))         -- 输出: 5.67
print(math.ceil(x))        -- 输出: -5
print(math.floor(x))       -- 输出: -6
print(math.max(10, 20, 30)) -- 输出: 30
print(math.min(10, 20, 30)) -- 输出: 10

2. 数学运算:
   - math.sqrt(x): 返回 x 的平方根。
   - math.pow(x, y): 返回 x 的 y 次方。
   - math.exp(x): 返回 e 的 x 次方。
   - math.log(x): 返回 x 的自然对数。
   - math.log10(x): 返回 x 的以 10 为底的对数。
local x = 25
print(math.sqrt(x))    -- 输出: 5
print(math.pow(x, 3))   -- 输出: 15625
print(math.exp(1))      -- 输出: 2.718281828459
print(math.log(math.exp(1)))   -- 输出: 1
print(math.log10(1000)) -- 输出: 3

3. 三角函数:
   - math.sin(x): 返回 x 的正弦值。
   - math.cos(x): 返回 x 的余弦值。
   - math.tan(x): 返回 x 的正切值。
   - math.deg(x): 将弧度转换为角度。
   - math.rad(x): 将角度转换为弧度。
local angle = math.pi / 4
print(math.sin(angle))     -- 输出: 0.70710678118655
print(math.cos(angle))     -- 输出: 0.70710678118655
print(math.tan(angle))     -- 输出: 1
print(math.deg(angle))     -- 输出: 45
print(math.rad(180))       -- 输出: 3.1415926535898

4. 随机数生成:
   - math.random(): 返回 [0, 1) 之间的伪随机数。
   - math.randomseed(seed): 设置随机数生成器的种子,用于产生可重复的随机数序列。
math.randomseed(os.time())  -- 使用当前时间作为随机数种子
print(math.random())        -- 输出: 0.xxxxx (0 到 1 之间的伪随机数)

5. 其他函数:
   - math.pi: 圆周率 π。
   - math.huge: 表示正无穷大的常量。
   - math.frexp(x): 返回尾数和指数,用于浮点数分解。
   - math.modf(x): 返回 x 的整数部分和小数部分。
print(math.pi)             -- 输出: 3.1415926535898
print(math.huge)           -- 输出: inf
local mantissa, exponent = math.frexp(123.45)
print(mantissa, exponent)  -- 输出: 0.9875 7
local integerPart, fractionalPart = math.modf(123.45)
print(integerPart, fractionalPart)  -- 输出: 123 0.45

这些函数覆盖了数学库中的一些基本功能。使用这些函数,你可以执行各种数学运算,从简单的基本运算到三角函数和随机数生成。这对于处理数学问题和编写模拟、游戏等程序非常有用。


转载请注明出处:http://www.zyzy.cn/article/detail/6510/Lua