Ir para conteúdo
Entre para seguir isso  
Cooller

Aplicando Raíz Quadrada em Lua

Recommended Posts

Cooller    0
Cooller

É um tutorial muito simples... Irei ensinar a usar uma fórmula que retorna a raíz quadrada de um certo número.

Não sei se haverá utilidade... até porque dependendo do número que você busca a raíz, é mais pratico usar a calculadora...

 

Começando:

  • Introdução

Essa fórmula é conhecida como "Método Babilônio" para extrair a raíz quadrada de um número. Eu apenas adaptei para poder usar nos scripts. Acredito que possa ser útil para grandes scripts talvez, ou para alguem que esteja estudando para prova matemática(como eu, no momento), ou talvez seja realmente inútil.

 

  • A Fórmula

 local n = [b][color=Red]n[/color][/b] --valor para extrair a raíz
local a = [color=Blue][b]a[/b][/color] --valor do quadrado perfeito que mais se aproxima de n, porém menor que n.

local b = n/a
--print(
local c = (a+b)/2
--print(c)
local d = n/c
--print(d)
local e = (c+d)/2
print("Raízes Quadradas de "..n.." = "..e.." e "..-e)

 

Explicando:

Obs: use apenas números inteiros, se quiser testar com números com virgúla pode testar, mas não sei se funciona.

 

n => Aqui você colocará o número do qual pretende extrair sua raíz.

Obs: Não tente colocar um número negativo, não há como retirar a raíz quadrada do número negativo. A raíz quadrada irá retornar 2 valores, um positivo e um negativo, Exemplo: raízes quadradas de 9 = 3 e -3.

 

a => Aqui você colocara o valor de uma raíz que mais se aproxime ao valor de n.

Exemplo:

n = 85

a = 9 -- (porque 9 é a raíz quadrada de 81, que é o valor mais próximo a 85 com raíz inteira)

outro exemplo:

n = 28

a = 5 -- (porque 5 é a raíz quadrada de 25)

-----

 

Agora um exemplo da aplicação:

local n = [color=DarkOrchid][b]96[/b][/color]
local a = [b][color=DarkOrchid]9[/color][/b]

local b = n/a
--print(
local c = (a+b)/2
--print(c)
local d = n/c
--print(d)
local e = (c+d)/2
print("Raízes Quadradas de "..n.." = "..e.." e "..-e)

O print vai retornar o seguinte:

Raízes Quadradas de 96 = 9.7980225988701 e -9.7980225988701
A margem de erro é pequena, se você procura uma raíz exatissíma esse método não serve. Mas se você olhar na calculadora, a raíz de 96 é "9,797958....."

 

Obrigado, e até a próxima!

OiaeuMae

Editado por Cooller
Arrumando erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Socket    0
Socket

Bem, isso não é bem um tutorial, e sim um script. Mas como é uma coisa bem interessante, eu vou mover para a seção Lua.

 

E antes que eu esqueça, leia uns tutoriais e faça uma função. E também você pode simplesmente elevar n à 0.5.

 

Atenciosamente, Socket.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cooller    0
Cooller

Obrigado. Eu nunca fiz uma função e não sei como fazer, dei uma procurada mas não encontrei algum tutorial, vou procurar mais, mas se vc puder me passar o link de algum, eu agradeço também.

Se elevar n a 0.5 funciona, então essa formula ai é inutil mesmo haha :slap:.

------------- edit

Tá, consegui:

 

[color=Black]function raizQuadrada(n, a)
local n = n
local a = a

local b = n/a
local c = (a+b)/2
local d = n/c
local e = (c+d)/2
print("Raízes Quadradas de "..n.." = "..e.." e "..-e)
end[/color]

Exemplo:

function raizQuadrada(n, a)
local n = n
local a = a

local b = n/a
local c = (a+b)/2
local d = n/c
local e = (c+d)/2
print("Raízes Quadradas de "..n.." = "..e.." e "..-e)
end

b = 114
c = 10
raizQuadrada(b, c)

ou também:

function raizQuadrada(n)
n = n
r = n^0.5
print("Raízes Quadradas de "..n.." = "..r.." e "..-r)
return r -- retorna apenas a raíz positiva.
end

raizQuadrada(144)

Editado por Cooller

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

o meu é melhor:

n = 9
print(math.sqrt(n))

xDD

o seu fico legal só falta fazer raiz cubica

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mickfern    32
Mickfern

Bom, não tenho muito a dizer, achei bem legal. Até esses dias um amigo tava querendo fazer a raiz quadrada... mais eu acho que o seu script ficou muito grande, porque o meu amigo fez com a função citada pelo Mock.

 

Mais que pode ser útil, ah sem dúvidas *-*

 

Estudar para que né ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cooller    0
Cooller

Raíz cubica

r_c = 27^(1/3)

print(r_c)

O seu é mais melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×