Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Liczby przed pierwiastkiem
pavlo94
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.12.2013

Ostrzeżenie: (0%)
-----


Witam!!

To mój 1. temat na forum. Szukałem trochę tutaj i ogólnie w Google, ale niestety nie znalazłem odpowiedzi na mój problem.
Chciałbym, aby w mojej aplikacji pierwiastki były obliczane nie tak jak normalnie przy użyciu funkcji sqrt(). Nie chcę miejsc dziesiętnych. Ale chcę jednak, aby wartość była dokładna.
Czyli chcąc wyciągnąć pierwiastek z np. 8, chciałbym, aby końcowym wynikiem było 2 pierwiastki z 2, a nie pierwiastek z 2.8284271247462. Chodzi mi o takie rozwiązanie jak w WolframAlpha.
Liczę na pomoc, z góry dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




  1. function mojesqrt($x) {
  2. $precyzja = $x * 0.0001;
  3. $polowa = $x/2;
  4. $polowa2 = $polowa*$polowa;
  5. while (abs($x-$polowa2)>$precyzja) {
  6. if ($polowa2>$x) $polowa = $polowa/2;
  7. if ($polowa2<$x) $polowa = $polowa + $polowa/2;
  8. $polowa2 = $polowa*$polowa;
  9. }
  10. return $polowa;
  11. }
  12.  
  13. echo "wbudowane: ";
  14. echo sqrt(111);
  15. echo " moje: ";
  16. echo mojesqrt(111);
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
To mój 1. temat na forum
Zacznij prosze wiec zwracac uwage gdzie zadajesz pytania. Problem z OOP nie ma zadnego zwiazku - przenosze
Go to the top of the page
+Quote Post
pavlo94
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.12.2013

Ostrzeżenie: (0%)
-----


Kshyhoo - to niestety nie działa. Jedyne co robi, to wyświetla inny wynik, niż normalny pierwiastek.
Nospor - nie do końca wiedziałem, gdzie umieścić. Sorki za kłopot.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(pavlo94 @ 23.12.2013, 23:47:07 ) *
Kshyhoo - to niestety nie działa. Jedyne co robi, to wyświetla inny wynik, niż normalny pierwiastek.

"Nie działa"? Co Ci nie działa? Skrypt? Pierwiastek z 2 = 1.41421356237 i taki wynik osiąga. Nie czaję, co chcesz osiągnąć?
Go to the top of the page
+Quote Post
pavlo94
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.12.2013

Ostrzeżenie: (0%)
-----


Chodzi mi o to, aby wyciągnąć czynnik przed pierwiastek. Czyli w przypadku pierwiastka z np. 8, byłyby to 2 pierwiastki z dwóch.
Go to the top of the page
+Quote Post
Damonsson
post
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. function irrationalsqrt($x) {
  2. for ($i = $x; $i >= 1; $i--) {
  3. if ($x % $i == 0 && fmod(sqrt($i), 1) == 0) {
  4. return sqrt($i) . ' pierwiastki z ' . $x / $i;
  5. }
  6. }
  7. }
  8.  
  9. echo irrationalsqrt(8);


Ten post edytował Damonsson 24.12.2013, 01:27:49
Go to the top of the page
+Quote Post
pavlo94
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.12.2013

Ostrzeżenie: (0%)
-----


Dzięki, o to chodziło. Można zamknąć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:22