前言#
lua数学函数中的另一大类就是和指数相关的,当然也包括对数,我把它们放到了一起,很显然指数和对数是互逆的,放到一起来总结便于我们牢记一些问题。
内容#
math.exp()##
- 原型:math.exp(x)
- 解释:返回e的x次幂,即公式e^x的值(e约等于2.17828)。
math.pow()##
- 原型:math.pow(x, y)
- 解释:返回
x
的y
次幂,即x^y
的值。
math.sqrt()##
- 原型:math.sqrt(x)
- 解释:返回数
x
的平方根,也可使用math.pow(x, 0.5)
代替。
math.ldexp()##
- 原型:math.ldexp(m, n)
- 解释:方程式:
x = m * 2^n
,已知尾数m
和指数n
,返回数字x
。
math.frexp()##
- 原型:math.frexp(x)
- 解释:方程式:
x = m * 2^n
,返回数字x
的尾数m
和指数n
,其中n
为一个整数,而m
的取值范围是[0.5, 1)
,比如32 = 0.5 * 2 ^ 6
;
math.log()##
- 原型:math.log(x)
- 解释:返回一个数
x
的自然对数。
math.log10()##
- 原型:math.log10(x)
- 解释:返回一个数
x
的以10为底的对数。
Usage##
- 首先新建一个文件将文件命名为exponentfunctest.lua然后编写如下代码:
-- 指数相关
local x = 0
print("\nmath.exp("..x..") = "..math.exp(x))
local x = 100
print("math.exp("..x..") = "..math.exp(x))
local x = 2
local y = 8
print("\nmath.pow("..x..", "..y..") = "..math.pow(x, y))
local x = 16
print("\nmath.sqrt("..x..") = "..math.sqrt(x))
-- 科学计数法
local m = 4
local n = 8
print("\nmath.ldexp("..m..", "..n..") = "..math.ldexp(m, n))
x= 32
local m2, n2 = math.frexp(x)
print("\nmath.frexp("..x..") = "..m2.." "..n2)
-- 对数相关
x = 100
print("\nmath.log("..x..") = "..math.log(x))
x = 1000
print("\nmath.log10("..x..") = "..math.log10(x))
- 运行结果
总结#
- 注意科学计数法的使用方法,其中返回值
m
的范围是[0.5,1),其实在有些版本或者领域,这个取值范围志不同的,我们只要知道有区别就好。 - 注意对数的底,因为函数长得比较像,使用时要注意不要手误写错了。
- 注意开根号和指数的关系,实际上开n次根号就相当于求一个数的1/n次幂。