Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] fibonacci a złożoność
hhg
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

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


na stronie wikipedii na samym dole:
http://pl.wikipedia.org/wiki/Algorytm_Euklidesa

czytam:
<quote>Ciekawostki
* Największej liczby kroków algorytmu wymagają dwa kolejne elementy ciągu Fibonacciego</quote>

w takim razie dlaczego mój skrypt:

  1. <?php
  2.  
  3. include('funkcje.inc');
  4.  
  5. $time = array();
  6. $operation = array();
  7. $max = 8;
  8.  
  9. // ciag fibonacciego a NWD
  10. for ($i = 1; $i < $max; $i++)
  11. {
  12. $time_start = getmicrotime();
  13. $operation[$i] = dif_ite(fib($max),fib($i));
  14.  
  15. $time_end = getmicrotime();
  16.  
  17. $time[$i] = round($time_end - $time_start,5);
  18. echo 'Dla fib(' . $i . ') oraz fib(' . $max . ') czas wykonania operacji NWD algorytmu Euklidesa zajal ' . $time[$i] . ' sekund.<br /><br />';
  19. }
  20.  
  21.  
  22. ?>



gdzie include('funkcje.inc'); są tu:

zwraca wyniki takie:

co prawda czas niby rosnie ale chodzi o złożonośc = liczbe operacji. A ta maleje!!

co robie źle?

Ten post edytował hhg 28.08.2007, 00:12:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Nigger
post
Post #2





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.07.2005

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


Jedne operacje np mnożenie zajmują kilkanascie razy więcej cykli zegarowych niż inne np dodawanie ...
A pozatym to co Ty piszesz to jest bardzo mało prawdopodbne. W 99,999 % przypadkach złozoność idzie w parze z czasem.

Ten post edytował Nigger 21.04.2007, 09:15:32
Go to the top of the page
+Quote Post
Hacker
post
Post #3





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


  1. <?php
  2. dif_ite(fib($max),fib($i));
  3. ?>

na
  1. <?php
  2. div_ite(fib($max),fib($i));
  3. ?>


i złożoność jest taka, jaka ma być
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 - 10:21