Lua - biblioteca matemática
Freqüentemente, precisamos de operações matemáticas em cálculos científicos e de engenharia e podemos aproveitar isso usando a matemática da biblioteca Lua padrão. A lista de funções disponíveis na biblioteca matemática é mostrada na tabela a seguir.
Sr. Não. | Biblioteca / Método e Propósito |
---|---|
1 | math.abs (x) Retorna o valor absoluto de x. |
2 | math.acos (x) Retorna o arco cosseno de x (em radianos). |
3 | math.asin (x) Retorna o arco seno de x (em radianos). |
4 | math.atan (x) Retorna o arco tangente de x (em radianos). |
5 | math.atan2 (y, x) Retorna o arco tangente de y / x (em radianos), mas usa os sinais de ambos os parâmetros para encontrar o quadrante do resultado. (Ele também lida corretamente com o caso de x ser zero.) |
6 | math.ceil (x) Retorna o menor inteiro maior ou igual a x. |
7 | math.cos (x) Retorna o cosseno de x (considerado em radianos). |
8 | math.cosh (x) Retorna o cosseno hiperbólico de x. |
9 | math.deg (x) Retorna o ângulo x (dado em radianos) em graus. |
10 | math.exp (x) Retorna o valor e potência x. |
11 | math.floor (x) Retorna o maior inteiro menor ou igual a x. |
12 | math.fmod (x, y) Retorna o restante da divisão de x por y que arredonda o quociente para zero. |
13 | math.frexp (x) Retorna m e e de forma que x = m2e, e é um número inteiro e o valor absoluto de m está no intervalo [0,5, 1) (ou zero quando x é zero). |
14 | math.huge O valor HUGE_VAL, um valor maior ou igual a qualquer outro valor numérico. |
15 | math.ldexp (m, e) Retorna m2e (e deve ser um número inteiro). |
16 | math.log (x) Retorna o logaritmo natural de x. |
17 | math.log10 (x) Retorna o logaritmo de base 10 de x. |
18 | math.max (x, ...) Retorna o valor máximo entre seus argumentos. |
19 | math.min (x, ...) Retorna o valor mínimo entre seus argumentos. |
20 | math.modf (x) Retorna dois números, a parte integral de xe a parte fracionária de x. |
21 | math.pi O valor de pi. |
22 | math.pow (x, y) Retorna xy. (Você também pode usar a expressão x ^ y para calcular esse valor.) |
23 | math.rad (x) Retorna o ângulo x (dado em graus) em radianos. |
24 | math.random ([m [, n]]) Essa função é uma interface para a função geradora pseudo-aleatória simples rand fornecida por ANSI C. Quando chamada sem argumentos, retorna um número real pseudo-aleatório uniforme no intervalo [0,1). Quando chamado com um número inteiro m, math.random retorna um inteiro pseudo-aleatório uniforme no intervalo [1, m]. Quando chamado com dois números inteiros me n, math.random retorna um inteiro pseudoaleatório uniforme no intervalo [m, n]. |
25 | math.randomseed (x) Define x como a "semente" para o gerador pseudo-aleatório: sementes iguais produzem sequências iguais de números. |
26 | math.sin (x) Retorna o seno de x (considerado em radianos). |
27 | math.sinh (x) Retorna o seno hiperbólico de x. |
28 | math.sqrt (x) Retorna a raiz quadrada de x. (Você também pode usar a expressão x ^ 0,5 para calcular esse valor.) |
29 | math.tan (x) Retorna a tangente de x (considerada em radianos). |
30 | math.tanh (x) Retorna a tangente hiperbólica de x. |
Funções trigonométricas
Um exemplo simples usando a função trigonométrica é mostrado abaixo.
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")
Quando executarmos o programa acima, obteremos a seguinte saída.
0.027415567780804
0.0
1.0
0.0
1.0
180
Outras funções matemáticas comuns
Um exemplo simples usando funções matemáticas comuns é mostrado abaixo.
-- 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")
Quando executarmos o programa acima, obteremos a seguinte saída.
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
Os exemplos acima são apenas alguns dos exemplos comuns, podemos usar a biblioteca matemática com base em nossa necessidade, então tente usar todas as funções para ficar mais familiarizado.