Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Książka do Algorytmiki
sztosz
post
Post #1





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

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


Kuleje jeśli chodzi o kwestie wynajdywania odpowiednich algorytmów żeby rozwiązać dany problem, czasem czytam o jakimś algorytm w necie i nie mam pojęcia jak go ugryźć.

Stąd moje pytanie: Czy jest jakaś książka z której dowiem się sprawnie tworzyć algorytmy, na czym to dokładnie polega? Ale tak od podstaw? W ogóle nie wiem czy w dobrym kierunku szukam, ale trochę błądzę po omacku. Nigdy nie kończyłem studiów informatycznych, ani matematycznych, więc mam w głowie tylko strzępki informacji na ten temat z liceum (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(l0ud @ 29.08.2009, 23:17:06 ) *
Oprócz tego że jest kompletnie niewydajny i przekombinowany, a jak wiadomo algorytm niewydajny = spaprany (IMG:style_emoticons/default/tongue.gif)

Och mój Wielebny Panie i Władco. Nie godzien jestem zwracać się tu do ciebie. Lecz moja wrodzona chęć pomocy innym oraz wyprowadzania ich z błędu nakazuje mi tutaj poinformować Cię o pochopności twej opinii o Panie.
Na dowód tego załączam ten oto rękopis do zapoznania się przez Mistrza.


  1.  
  2. $nums = array();
  3.  
  4. function getmicrotime()
  5. {
  6. list($usec, $sec) = explode(" ",microtime());
  7. return ((float)$usec + (float)$sec);
  8. }
  9.  
  10. function t1()
  11. {
  12. $min = 2;
  13. $max = 100;
  14. global $nums;
  15. $nums[0]=0;
  16.  
  17. $tab = range($min, $max);
  18.  
  19. // pozycja liczby z tablicy na kt?rej jeste?my
  20. $actualPos = 0;
  21. while( $actualPos < count($tab) )
  22. {
  23. // buforujemy sobie d?ugo?? tabeli
  24. $tabLength = count($tab);
  25.  
  26. // rozpoczynamy od nastepnego numeru od aktualnie badanego
  27. for($i = ($actualPos+1); $i<$tabLength; $i++)
  28. {
  29. $nums[0]++;
  30. // sprawdzenie podzielnosci
  31. if( ($tab[$i] % $tab[$actualPos]) === 0 )
  32. {
  33. unset($tab[$i]);
  34. }
  35. }
  36.  
  37. // resetujemy klucze
  38. $tab = array_merge($tab);
  39.  
  40. // przechodzimy do nastepnej liczby
  41. $actualPos++;
  42. }
  43.  
  44. return $tab;
  45. }
  46.  
  47.  
  48. function t4()
  49. {
  50. $max = 1000;
  51. $tab = range(0, $max);
  52. global $nums;
  53. $nums[1]=0;
  54.  
  55. for ( $actualPos=2; $actualPos <= $max; $actualPos++)
  56. {
  57.  
  58. // rozpoczynamy od nast?pnego wyst?pienia badanego numeru
  59. // o ile nie jest skre?lony
  60. if (isset($tab[$actualPos]))
  61. {
  62. for ($i = $actualPos*2; $i <= $max; $i += $actualPos)
  63. {
  64. $nums[1]++;
  65. unset($tab[$i]);
  66. }
  67. }
  68.  
  69. }
  70. unset($tab[0],$tab[1]);
  71.  
  72. return $tab;
  73. }
  74.  
  75.  
  76. $start = getmicrotime();
  77. for($i=0; $i<1000; $i++)
  78. {
  79. t1();
  80. }
  81. echo (getmicrotime()-$start).' - ';
  82.  
  83.  
  84. $start = getmicrotime();
  85. for($i=0; $i<1000; $i++)
  86. {
  87. t4();
  88. }
  89. echo (getmicrotime()-$start);
  90.  
  91.  
  92. print_r($nums);


Ten post edytował wookieb 29.08.2009, 22:48:49
Go to the top of the page
+Quote Post

Posty w temacie
- sztosz   Książka do Algorytmiki   29.08.2009, 09:33:15
- - wookieb   Zależy jakich algorytmów poszukujesz. W phpie nie ...   29.08.2009, 09:37:21
- - blooregard   @sztosz - jeśli byłbyś zainteresowany zakupem ksią...   29.08.2009, 09:43:04
- - sztosz   Od razu mówię że PHP to mnie akurat mało interesuj...   29.08.2009, 09:56:56
- - wookieb   Niestety ta książka akurat sit nie omawia. Na stro...   29.08.2009, 10:13:04
- - thek   Tak naprawdę to nie ma dobrej książki do algorytmi...   29.08.2009, 19:39:46
- - Shadowsword   Kup "Wprowadzenie do algorytmów" Wydawni...   29.08.2009, 20:04:07
- - sztosz   No ładnie książka wszędzie kosztuje około 140 zł, ...   29.08.2009, 21:00:28
- - Shadowsword   Naprawdę warto. Jest gruba, dokładnie opisuje napr...   29.08.2009, 21:26:38
- - l0ud   CytatPoza tym nie można temu algorytmowi nic zarzu...   29.08.2009, 22:17:06
- - wookieb   Cytat(l0ud @ 29.08.2009, 23:17:06 ) O...   29.08.2009, 22:34:16
- - sztosz   @Shadowsword: ściągnąłem kilka rozdziałów, przeczy...   29.08.2009, 22:37:05
- - wookieb   CytatUPDATE Wynik mi wyszedł taki: 11.087609052658...   29.08.2009, 22:44:01
- - sztosz   CytatU mnie dzieje się to tutaj [PHP] pobierz, pla...   29.08.2009, 22:55:38
- - wookieb   Jeszcze mała uwaga Loud Ale tym razem słuszna [P...   29.08.2009, 23:04:52
- - thek   Kod l0ud'a jest szybszy tylko z jednego powodu...   30.08.2009, 00:33:43
- - sztosz   Ale cała szybkość nie polega na tym że do danego i...   30.08.2009, 01:52:38
- - thek   A popatrz sobie na wyjaśnienie moje oraz chłopaków...   30.08.2009, 02:41:38
- - sztosz   OK, może ten algorytm jest lepszy przy "zrów...   30.08.2009, 10:30:38
- - rzymek01   również polecam "Wprowadzenie do algorytmów...   30.08.2009, 13:34:12
- - thek   Zrównolegnianie to proces przekształcania kodu z s...   30.08.2009, 14:43:15
- - sztosz   Parallel computing (Obliczenia równoległe), tak si...   30.08.2009, 20:08:16
- - l0ud   CytatAlgorytm pierwszy jest bardziej optymalny i l...   30.08.2009, 22:12:53
- - thek   Wczoraj źle zrozumiałem algorytm Patrzyłem na nie...   31.08.2009, 00:04:23
- - rzymek01   [PHP] pobierz, plaintext <?php /* wykorzys...   31.08.2009, 09:16:03
- - sztosz   W Pythonie [PYTHON] pobierz, plaintext from time ...   31.08.2009, 15:33:05
- - l0ud   Cytatadded: ktoś wie dlaczego tablica bool [400 00...   31.08.2009, 16:32:05
- - thek   Zabrzmiało to jakby C++ sam nie był językiem wysok...   31.08.2009, 16:52:35
- - sztosz   Nadal jest błąd: [32680]=> int(385001) to jest...   31.08.2009, 16:56:55
- - l0ud   CytatZabrzmiało to jakby C++ sam nie był językiem ...   31.08.2009, 17:13:12
- - sztosz   A przede mną naprawdę dużo nauki, prosta rekurencj...   31.08.2009, 17:22:30
- - rzymek01   @sztosz, wiadomo, że rekurencja jest wolniejsza i ...   31.08.2009, 19:18:07
- - thek   OK... czas na mnie Kod#include <cstdlib> ...   1.09.2009, 01:50:22
- - rzymek01   no tak, memset jest znacznie szybszy jak ci się ...   1.09.2009, 13:53:48
- - thek   Można robić przez new... Tylko że przy wywoływaniu...   1.09.2009, 20:07:24
- - l0ud   Cytatale gdybym miał zwrócić wynik to byłaby kapli...   1.09.2009, 20:39:12
- - rzymek01   1. program po zakończeniu swojej pracy zwalnia prz...   1.09.2009, 21:19:48
- - l0ud   rzymek01, jak już to delete[] wyniki; A to, że sy...   1.09.2009, 21:34:17
|- - rzymek01   Cytat(l0ud @ 1.09.2009, 22:34:17 ) rz...   2.09.2009, 14:55:32
- - thek   @loud: gdyby rezerwacja i kasowanie pamięci były w...   1.09.2009, 22:17:54
- - Jabol   Co do tematu to niestety masz ten problem, że więk...   4.09.2009, 10:43:47


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: 13.10.2025 - 23:54