Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pierwiastek stopnia n
Forum PHP.pl > Forum > Przedszkole
Zebro
Wczoraj zastanowiło mnie jak zrobić potegowanie i pierwiastkowanie. Z potegowaniem niema wiekszego problemu. Natomiast pierwiastkowanie sprawia mi pewien problem. Przy pewnych liczbach oraz dokladnosci oblicza dobrze, natomiast przy malej dokladnosci np. $n=0.0001 skrypt daje niedokladny wynik. Nie wiem czym to jest spowodowane.

$liczba - zwraca pierwiastek z tej liczby
$n - stopien pierwiastka
  1. <?php
  2. $liczba=27;
  3. $n=3;
  4. $min=0;
  5. $dokladnosc=0.001;
  6. $od=0;
  7. $do=1;
  8.  
  9. echo ("<html><body><table border=1>");
  10.  
  11. while($od<=$do)
  12. {
  13. $potega=1;
  14. for($x=1;$x<=$n; $x++)
  15. {
  16. $potega=$potega*$min;
  17. }
  18. if($potega>$liczba)
  19. {
  20. $od++;
  21. }
  22. else
  23. {
  24. $wynik=$min;
  25. $min=$min+$dokladnosc;
  26. }
  27. }
  28. echo ("<tr><td>Wynik<td>$wynik</tr></table></body></html>");
  29. ?>
dr_bonzo
  1. <?php
  2.  
  3. function potega( $podstawa, $wykladnik )
  4. {
  5. return pow( $podstawa, $wykladnik );
  6. }
  7.  
  8. function pierwiastek( $podstawa, $stopien )
  9. {
  10. return potega( $podstawa, floatval( 1./ $stopien ) );
  11. }
  12.  
  13. $x = 0.1;
  14. print( 'X = ' . $x . '<br />' );
  15. $y = potega( $x, 6 );
  16. print( 'Y = ' . $y . ' uzyj printfa zeby dostosowac wyswietlanie do 0.000..1<br />' );
  17. $z = pierwiastek( $y, 6 );
  18. print( 'Z = ' . $z . '<br />' );
  19. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.