Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kakashi_Hatake

[Resolvido] Criar função raiz quadrada

Recommended Posts

Estou com um problema que não consegui resolver, a minha funçao não retorna uma raiz quadrada exata, e não sei mais o que fazer.

<?php
class Raiz{
static function quadrada($valor){
	for($i=0;$i*$i<=$valor;$i++){
		$result = $i*$i;		
		$i++;
	}
	$y = $i-1;
	$v1 = ($i*$i)-$valor;
	$v2 = $valor-($y*$y);
	if($v1<$v2){
		$result = $i*$i;
	}elseif($v1>$v2){
		$result = $y*$y;
		--$i;
	}
	echo ($valor+$result)/(2*$i);	
}
}
Raiz::quadrada(27); // 5.2
echo "<hr>";
echo sqrt(27); // 5.1961524227066
?>

Se alguem puder dar uma ajuda, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

a minha funçao não retorna uma raiz quadrada exata, e não sei mais o que fazer.

 

kkkkkkk, programador é tudo doido mesmo. :P

 

class Math {
static public function sqrt( $S ){
	$x = 1; while ( $x << 2 < $S ) ++$x;

	for ( $i = 0 , $t = 14 ; $x != $S && $i < $t ; ++$i , $x = 0.5 * ( $x + $S / $x ) );

	return $x;
}
}

 

echo 'Raiz de 2:' , PHP_EOL;
var_dump( Math::sqrt( 2 ) , sqrt( 2 ) );

echo PHP_EOL , 'Raiz de 3:' , PHP_EOL;
var_dump( Math::sqrt( 3 ) , sqrt( 3 ) );

echo PHP_EOL , 'Raiz de 9:' , PHP_EOL;
var_dump( Math::sqrt( 9 ) , sqrt( 9 ) );

echo PHP_EOL , 'Raiz de 27:' , PHP_EOL;
var_dump( Math::sqrt( 27 ) , sqrt( 27 ) );

 

Saída:

Raiz de 2:
float(1.4142135623731)
float(1.4142135623731)

Raiz de 3:
float(1.7320508075689)
float(1.7320508075689)

Raiz de 9:
float(3)
float(3)

Raiz de 27:
float(5.1961524227066)
float(5.1961524227066)

:P

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, realmente deveria ter estudado mais um pouco antes de tentar criar minha própria função :(

 

Com esse exemplo, tive várias novas idéias(bizarras).

 

Valeu, sua resposta foi de grande ajuda.

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo...Porquê se apegar tanto a funções prontas ? Aposto que muitos usam as funções nativas sem saber a lógica utilizada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A parte de entender a lógica acho válida. Mas a sacada das funções prontas remete diretamente à performance do sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.