Lua - biblioteca de matemáticas

A menudo necesitamos operaciones matemáticas en cálculos científicos y de ingeniería y podemos aprovechar esto utilizando las matemáticas estándar de la biblioteca Lua. La lista de funciones disponibles en la biblioteca matemática se muestra en la siguiente tabla.

No Señor. Biblioteca / Método y propósito
1

math.abs (x)

Devuelve el valor absoluto de x.

2

math.acos (x)

Devuelve el arco coseno de x (en radianes).

3

math.asin (x)

Devuelve el arco seno de x (en radianes).

4

math.atan (x)

Devuelve el arco tangente de x (en radianes).

5

math.atan2 (y, x)

Devuelve el arco tangente de y / x (en radianes), pero usa los signos de ambos parámetros para encontrar el cuadrante del resultado. (También maneja correctamente el caso de que x sea cero).

6

math.ceil (x)

Devuelve el número entero más pequeño mayor o igual que x.

7

math.cos (x)

Devuelve el coseno de x (se supone que está en radianes).

8

math.cosh (x)

Devuelve el coseno hiperbólico de x.

9

math.deg (x)

Devuelve el ángulo x (expresado en radianes) en grados.

10

math.exp (x)

Devuelve el valor e potencia x.

11

math.floor (x)

Devuelve el número entero más grande menor o igual que x.

12

math.fmod (x, y)

Devuelve el resto de la división de x por y que redondea el cociente hacia cero.

13

math.frexp (x)

Devuelve my e tal que x = m2e, e es un número entero y el valor absoluto de m está en el rango [0.5, 1) (o cero cuando x es cero).

14

math.huge

El valor HUGE_VAL, un valor mayor o igual a cualquier otro valor numérico.

15

math.ldexp (m, e)

Devuelve m2e (e debe ser un número entero).

dieciséis

math.log (x)

Devuelve el logaritmo natural de x.

17

math.log10 (x)

Devuelve el logaritmo en base 10 de x.

18

math.max (x, ...)

Devuelve el valor máximo entre sus argumentos.

19

math.min (x, ...)

Devuelve el valor mínimo entre sus argumentos.

20

math.modf (x)

Devuelve dos números, la parte integral de x y la parte fraccionaria de x.

21

math.pi

El valor de pi.

22

math.pow (x, y)

Devuelve xy. (También puede usar la expresión x ^ y para calcular este valor).

23

math.rad (x)

Devuelve el ángulo x (dado en grados) en radianes.

24

math.random ([m [, n]])

Esta función es una interfaz para la función generadora pseudoaleatoria simple rand proporcionada por ANSI C. Cuando se llama sin argumentos, devuelve un número real pseudoaleatorio uniforme en el rango [0,1). Cuando se llama con un número entero m, math.random devuelve un entero pseudoaleatorio uniforme en el rango [1, m]. Cuando se llama con dos números enteros myn, math.random devuelve un entero pseudoaleatorio uniforme en el rango [m, n].

25

math.randomseed (x)

Establece x como la "semilla" para el generador pseudoaleatorio: las semillas iguales producen secuencias iguales de números.

26

math.sin (x)

Devuelve el seno de x (se supone que está en radianes).

27

math.sinh (x)

Devuelve el seno hiperbólico de x.

28

math.sqrt (x)

Devuelve la raíz cuadrada de x. (También puede usar la expresión x ^ 0.5 para calcular este valor).

29

math.tan (x)

Devuelve la tangente de x (se supone que está en radianes).

30

math.tanh (x)

Devuelve la tangente hiperbólica de x.

Funciones trigonométricas

A continuación se muestra un ejemplo sencillo que utiliza la función trigonométrica.

radianVal = math.rad(math.pi / 2)

io.write(radianVal,"\n")

-- Sin value of 90(math.pi / 2) degrees
io.write(string.format("%.1f ", math.sin(radianVal)),"\n")

-- Cos value of 90(math.pi / 2) degrees
io.write(string.format("%.1f ", math.cos(radianVal)),"\n")

-- Tan value of 90(math.pi / 2) degrees
io.write(string.format("%.1f ", math.tan(radianVal)),"\n")

-- Cosh value of 90(math.pi / 2) degrees
io.write(string.format("%.1f ", math.cosh(radianVal)),"\n")

-- Pi Value in degrees
io.write(math.deg(math.pi),"\n")

Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.

0.027415567780804
0.0 
1.0 
0.0 
1.0 
180

Otras funciones matemáticas comunes

A continuación se muestra un ejemplo sencillo que utiliza funciones matemáticas comunes.

-- Floor
io.write("Floor of 10.5055 is ", math.floor(10.5055),"\n")

-- Ceil
io.write("Ceil of 10.5055 is ", math.ceil(10.5055),"\n")

-- Square root
io.write("Square root of 16 is ",math.sqrt(16),"\n")

-- Power
io.write("10 power 2 is ",math.pow(10,2),"\n")
io.write("100 power 0.5 is ",math.pow(100,0.5),"\n")

-- Absolute
io.write("Absolute value of -10 is ",math.abs(-10),"\n")

--Random
math.randomseed(os.time())
io.write("Random number between 1 and 100 is ",math.random(),"\n")

--Random between 1 to 100
io.write("Random number between 1 and 100 is ",math.random(1,100),"\n")

--Max
io.write("Maximum in the input array is ",math.max(1,100,101,99,999),"\n")

--Min
io.write("Minimum in the input array is ",math.min(1,100,101,99,999),"\n")

Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.

Floor of 10.5055 is 10
Ceil of 10.5055 is 11
Square root of 16 is 4
10 power 2 is 100
100 power 0.5 is 10
Absolute value of -10 is 10
Random number between 1 and 100 is 0.22876674703207
Random number between 1 and 100 is 7
Maximum in the input array is 999
Minimum in the input array is 1

Los ejemplos anteriores son solo algunos de los ejemplos comunes, podemos usar la biblioteca matemática según nuestras necesidades, así que intente usar todas las funciones para familiarizarse más.