Lua math(二) exponent

指数.jpg

前言#

lua数学函数中的另一大类就是和指数相关的,当然也包括对数,我把它们放到了一起,很显然指数和对数是互逆的,放到一起来总结便于我们牢记一些问题。

内容#


math.exp()##

  • 原型:math.exp(x)
  • 解释:返回e的x次幂,即公式e^x的值(e约等于2.17828)。

math.pow()##

  • 原型:math.pow(x, y)
  • 解释:返回xy次幂,即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))
  • 运行结果
math_exponent.png

总结#

  • 注意科学计数法的使用方法,其中返回值m的范围是[0.5,1),其实在有些版本或者领域,这个取值范围志不同的,我们只要知道有区别就好。
  • 注意对数的底,因为函数长得比较像,使用时要注意不要手误写错了。
  • 注意开根号和指数的关系,实际上开n次根号就相当于求一个数的1/n次幂。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容