Matemática + LUA
Faaaala galera! Tudo bem? Espero que sim, pois precisarão de muita atenção para entender algumas partes deste tutorial.
A matemática é algo que nos acompanha no dia-a-dia, realmente muito importante, principalmente na programação. É indiscutível e concordável entre todos os programadores que um dos fatores de um bom profissional da área é o domínio da matemática!
Bom, este tutorial vai ser para mostrar um pouco apenas da importância desta na linguagem LUA, ainda que se você tem experiência, provavelmente já percebeu isto.
Sinais matemáticos simples
Começando com os sinais matemáticos, o básico de lua e da matemática, são eles:
+ Soma - Subtração * Multiplicação / Divisão ^ Exponenciação % Módulo
Onde o módulo é definido como: x % y = x – math.floor(x/y)*y
A raiz quadrada pode ser definida como: x^(1/2).
Pode-se chegar ao valor da raiz cúbica deste jeito: x^(1/3) .
E assim por diante.
Os sinais de comparação também são básicos em lua, ainda sim, são bem importantes e são usados para comparar dois valores numéricos (exceto == e ~= que podem comparar qualquer valor).
Porcentagem
Porcentagem é bastante usada em lua, pois é um artifício a ser usado em várias funções que envolvem valores numéricos.
A porcentagem não é nada mais que regra de três, exemplo:
100% - 200
25% - x
Neste caso, temos o valor de cem por cento e queremos o valor de vinte cinco por cento. Para isso, cruzamos os valores.
Então a seguinte conta é feita:
100x = 5000
x = 5000/100
x = 50
Logo, 25% de 200 é 50.
tonumber
Existe uma função em lua, que tenta fazer a conversão de alguma string para valor numérico, esta função é chamada de tonumber.
É uma função clássica de lua, onde ela faz a conversão, de uma string, para um valor numérico, por exemplo: tonumber(“2”), ela converte para 2.
Simples, no entanto útil. Vamos usar dando um exemplo de Ot Server. Em um comando de talkaction, os parâmetros são strings, mesmo se forem números, assim, para compará-los com outros números, é necessário esta conversão.
Para curiosidade, a função tostring faz o inverso, exemplo: tostring(2), retorna “2”.
Funções math
Para mostrar a importância da matemática em lua e em outras programações, existem as funções math que são funções matemáticas ou diretamente relacionadas a ela.
Sinceramente eu não domino todas, então vou explicar as mais importantes por agora, são elas:
Math.ceil Math.deg Math.exp Math.floor Math.ldexp Math.log Math.log10 Math.modf Math.pi Math.pow Math.rad Math.random
Bom, estas serão as funções explicadas neste tutorial, onde eu não explicarei as funções de seno, cosseno e tangente para não deixar o tutorial uma apostila.
Primeiro, antes de começar a explicar estas funções, vou explicar o que seria um logaritmo, explicando como resolver-lo por definição, explicar o Número de Euler e explicar o que é um radiano.
Logaritmo:
Logaritmo é um conteúdo do ensino médio considerado um tanto complicado. Portanto, ensinarei apenas o método da resolução pela definição, vamos lá:
Um logaritmo contém três partes, são elas a base, o expoente e o próprio logaritmo. Dado o logaritmo abaixo:
Log100 = x 10
A base é 10, x é o expoente e o logaritmo é log100. A conta deve ser feita deste jeito:
Base elevada ao expoente é igual a logaritmo.
Ou seja
x 10 = 100 x = 2
Pronto, o logaritmo de 100 na base 10 é 2. Esse é o método da definição do logaritmo.
Número de Euler:
O número de Euler é um número dado em homenagem a um matemático chamado Leonard Euler, suíço, nascido no século XIII.
É um número irracional, aproximadamente é 2,718281828459045, ou, às vezes apenas 2,718281828459.
O número de Euler é comum ser chamado de e.
Também é à base do logaritmo natural.
Radiano:
Um radiano é a unidade de medida no Sistema Internacional de Unidades de um ângulo plano.
Usando um circulo como exemplo, nós teríamos o eixo da circunferência, sendo a circunferência a linha traçada em volta do circulo. A distancia desde o eixo deste circulo até a circunferência é o raio.
Quando a distancia entre duas linhas traçadas a partir do eixo até a circunferência for igual ao raio, o ângulo entre estas duas linhas vai ser 1 radiano.
É importante saber que 1 radiano é, aproximadamente, 57.295779513082º.
Math.ceil
Explicado como funcionam os logaritmos, um radiano e o número de Euler, vamos começar explicando as funções matemáticas.
O math.ceil faz uma abreviação de qualquer número decimal, arredondando este para o próximo numero inteiro maior que ele.
Usamos assim: math.ceil(1.5), ele retornará 2. Portanto, o math.ceil retorna o inteiro maior que o número decimal em seu parâmetro.
Exemplos:
Math.ceil(7/2) - 4
Math.ceil(16/3) – 6
Math.deg
O math.deg faz a conversão de um ângulo dado em radianos para grau.
Por exemplo, 1 radiano é, aproximadamente, 57.295779513082º.
Exemplos:
Math.deg(2) - 114.59155902616º
Math.deg(4) - 229.18311805233º
Math.exp
Considerando que o número de Euler é chamado de e, esta função faz o número de Euler elevado a um expoente x.
Usando o math.exp(x), ele eleva o e na potencia de x. Por exemplo, math.exp(x) faz a seguinte operação:
x e
Exemplos:
Math.exp(2) - 7.3890560989307
Math.exp(10) - 22026.465794807
Math.floor
O math.floor é semelhante ao math.ceil, ele ignora os valores fracionários de números decimais e considera apenas o valor integral.
No entanto, esta função arredonda o número para um valor menor, inteiro, que este. Por exemplo: math.floor(1.5), retorna 1.
Exemplos:
Math.floor(20/3) – 6
Math.floor(9/2) – 4
Math.ldexp
Esta função é originada de uma fórmula, contendo dois parâmetros.
A função eleva o número 2 a potencia do segundo parâmetro, feito isso, o multiplica pelo primeiro parâmetro.
Por exemplo, math.ldexp(5, 3), primeiro é elevado 2 na potencia 3 e depois multiplicado por 5.
2³ = 8
8*5 = 40
Math.ldexp(5, 3) = 40
Exemplos:
Math.ldexp(10, 7) = 1280
Math.ldexp(40, 2) = 160
Math.log
Ao contrário do que o senso comum diz, esta função não lhe permite escolher um logaritmo e retornar o expoente a qual sua base deve ser elevado para ser igual e ele, no entanto, retorna a quanto o número de Euler deve ser elevado para que resulte no seu logaritmo.
Por exemplo, math.log(148.41315910258), retornará 5, pois 2,718281828459045 elevado na 5º potencia é igual a 148.41315910258.
Definição do logaritmo acima:
Log148.41315910258 = x 2,718281828459045 x 2,718281828459045 = 148.41315910258 x = 5
Math.log10
Esta função é uma função relativamente simples comparada com a de cima. Pois ao invés de assumir o número de Euler como base do logaritmo, ela assume 10 como esta.
Por exemplo: math.log10(100), seria processado assim:
Log100 = x 10 x 10 = 100 x = 2
Exemplos:
Math.log10(1000) – 3
Math.log10(0.1) – (-1)
Math.modf
Esta é outra função simples de se compreender, ela retorna dois valores, o primeiro é a parte intregal do parâmetro e o segundo é a parte fracionária.
Dado o exemplo: math.modf(1.5), ele retorna primeiro 1 e depois 0,5 pois 1 é a parte integral do número e 0,5 é a parte fracionária.
Exemplos:
Math.modf(7.5) - 7 & 0,5
Math.modf(92.8) – 92 & 0,8
Math.pi
A função retorna o valor de PI é um número como o número de Euler, ou seja, um número importante e único na matemática. É usado para medir várias figuras geométricas.
É referente a letra p no alfabeto grego, e tem o valor aproximado de: 3,14159265
Math.pow
A função representa a seguinte conta:
y x
Ou seja, x elevado na potencia y, onde x é o primeiro parâmetro e y o segundo.
Por exemplo, math.pow(2, 3) resulta 8.
Exemplos:
Math.pow(3, 2) - 9
Math.pow(5, 3) – 125
Math.rad
É a função contrária de math.deg, faz a conversão de um ângulo dado em graus para radianos.
Por exemplo, 1º é aproximadamente, 0.01745329 radianos.
Exemplos:
Math.rad(30) - 0.5235987755983
Math.rad(360) - 6.2831853071796
Math.random
Para finalizar, a função math.random escolhe um número inteiro entre o arredondamento do primeiro parâmetro e o arredondamento do segundo. Sendo este arredondamento semelhante ao math.floor.
Por exemplo, math.random(1, 5), processaria o seguinte:
20% - 1 20% - 2 20% - 3 20% - 4 20% - 5
É importante ressaltar que lua é uma linguagem semi-randomica.
Exemplos:
Math.random(1, 100)
Math.random(5, 18)
Fontes:
Vou colocar aqui as fontes de onde eu recorri para escrever tudo isso acima:
Tutorial exclusivo XTIBIA
Bom, é isso, o tutorial foi feito inteiramente por mim, espero que gostem e aproveitem, até mais.