数学库
MATH数学运算:随机数、取整、三角函数、两点距离 | 本页 30 个接口。登录全站学员账号后:给函数打 ✓ 记录学习进度、写私人备注。
返回 x 的绝对值。
| 参数 | 说明 |
|---|---|
| x | 数字 |
|x|
print(math.abs(-5)) --> 5 print(math.abs(3)) --> 3
反余弦函数,返回弧度。x 取值 [-1, 1]。
| 参数 | 说明 |
|---|---|
| x | 余弦值 [-1,1] |
弧度
print(math.acos(1)) --> 0 print(math.deg(math.acos(0.5))) --> 60.0000...
反正弦函数,返回弧度。x 取值 [-1, 1]。
| 参数 | 说明 |
|---|---|
| x | 正弦值 [-1,1] |
弧度
print(math.deg(math.asin(1))) --> 90
反正切函数,返回弧度。
| 参数 | 说明 |
|---|---|
| x | 正切值 |
弧度
print(math.deg(math.atan(1))) --> 45
反正切(双参数版):根据点 (x, y) 所在象限返回正确角度,是求“两点方向角”的标准做法(做弹道/朝向常用)。
| 参数 | 说明 |
|---|---|
| y | 纵向差 |
| x | 横向差 |
弧度(-π ~ π)
-- 求目标方向角(弧度转度) local deg = math.deg(math.atan2(ty - my, tx - mx))
向上取整:返回 ≥ x 的最小整数。
| 参数 | 说明 |
|---|---|
| x | 数字 |
整数
print(math.ceil(3.2)) --> 4 print(math.ceil(-3.2)) --> -3
余弦函数,参数为弧度(角度要先 math.rad 转换)。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
余弦值 [-1,1]
print(math.cos(0)) --> 1 print(math.cos(math.rad(60))) --> 0.5
双曲余弦函数。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
双曲余弦值
print(math.cosh(0)) --> 1
弧度转角度。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
角度
print(math.deg(math.pi)) --> 180
返回 e 的 x 次幂(自然指数)。
| 参数 | 说明 |
|---|---|
| x | 指数 |
e^x
print(math.exp(0)) --> 1 print(math.exp(1)) --> 2.71828...
向下取整:返回 ≤ x 的最大整数。掉落/坐标取整最常用。
| 参数 | 说明 |
|---|---|
| x | 数字 |
整数
print(math.floor(3.8)) --> 3 print(math.floor(-3.2)) --> -4
取余(结果符号跟 x)。整数取余也可用运算符 %。
| 参数 | 说明 |
|---|---|
| x | 被除数 |
| y | 除数 |
余数
print(math.fmod(7, 3)) --> 1 print(math.fmod(-7, 3)) --> -1
把 x 拆成尾数 m 与指数 e(x = m × 2^e,m ∈ [0.5, 1))。
| 参数 | 说明 |
|---|---|
| x | 数字 |
m, e
print(math.frexp(8)) --> 0.5 4
正无穷大常量(不是函数)。任何有限数都小于它;huge/huge 等特殊运算得 nan。
无参数
(常量)
print(math.huge > 999999999) --> true print(1 / math.huge) --> 0 print(math.huge / math.huge) --> nan
math.frexp 的逆运算:返回 m × 2^e。
| 参数 | 说明 |
|---|---|
| m | 尾数 |
| e | 指数 |
m × 2^e
print(math.ldexp(0.5, 4)) --> 8
自然对数(以 e 为底)。5.1 没有 log(x, base) 双参用法(5.2+ 才有),换底用 math.log(x)/math.log(base)。
| 参数 | 说明 |
|---|---|
| x | 正数 |
自然对数
print(math.log(math.exp(1))) --> 1 print(math.log(8,2) or math.log(8)/math.log(2)) --> 3
以 10 为底的对数。
| 参数 | 说明 |
|---|---|
| x | 正数 |
常用对数
print(math.log10(1000)) --> 3
返回所有参数中的最大值。配合 unpack 可求数组最大值。
| 参数 | 说明 |
|---|---|
| x,... | 多个数字 |
最大值
print(math.max(3, 9, 6)) --> 9
print(math.max(unpack({5, 2, 8}))) --> 8返回所有参数中的最小值。
| 参数 | 说明 |
|---|---|
| x,... | 多个数字 |
最小值
print(math.min(3, 9, 6)) --> 3
把 x 拆成整数部分和小数部分(两个返回值)。
| 参数 | 说明 |
|---|---|
| x | 数字 |
整数部分, 小数部分
print(math.modf(3.75)) --> 3 0.75
圆周率 π 常量(3.14159...)。
无参数
(常量)
print(math.pi) --> 3.14159... print(math.cos(math.pi)) --> -1
返回 x 的 y 次幂(与 ^ 运算符等价,5.3 已弃用)。
| 参数 | 说明 |
|---|---|
| x | 底数 |
| y | 指数 |
x^y
print(math.pow(2, 10)) --> 1024 print(2 ^ 10) --> 1024
角度转弧度(math.deg 的逆运算)。
| 参数 | 说明 |
|---|---|
| x | 角度 |
弧度
print(math.rad(180)) --> 3.14159...
随机数:无参返回 [0,1) 小数;一个参数 m 返回 [1, m] 整数;两个参数返回 [m, n] 整数。Roll 点/掉落判定核心函数。
| 参数 | 说明 |
|---|---|
| m | 上限(或下限) |
| n | 上限 |
随机数
print(math.random()) --> 0.7231...
print(math.random(6)) --> 掷骰子 1~6
print(math.random(80, 120)) --> 80~120 之间伤害
-- 按概率掉落(30%)
if math.random(100) <= 30 then print('掉落!') end设置随机数种子。同种子产生相同随机序列(可复现),一般开机用 os.time() 做种子。
| 参数 | 说明 |
|---|---|
| x | 种子数字 |
无
math.randomseed(os.time()) -- 之后 math.random 才有较好随机性
正弦函数,参数为弧度。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
正弦值 [-1,1]
print(math.sin(math.rad(30))) --> 0.5
双曲正弦函数。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
双曲正弦值
print(math.sinh(0)) --> 0
平方根(等价 x ^ 0.5)。两点距离公式必用。
| 参数 | 说明 |
|---|---|
| x | 非负数字 |
平方根
print(math.sqrt(144)) --> 12 local dist = math.sqrt((x2-x1)^2 + (y2-y1)^2) -- 两点距离
正切函数,参数为弧度。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
正切值
print(math.tan(math.rad(45))) --> 1.0
双曲正切函数,结果恒在 [-1, 1]。
| 参数 | 说明 |
|---|---|
| x | 弧度 |
双曲正切值
print(math.tanh(0)) --> 0