Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] srand,mt_srand - o co chodzi?
-merlop-26-
post
Post #1





Goście







Szukam informacji na temat srand,mt_srand, niestety nie rozumiem nic z manuala i innych stron. Jest ktoś w stanie wytłumaczyć łopatologicznie jakie są różnice pomiędzy srand,mt_srand wg rand i o co chodzi?

Z góry dziękuję
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Najprościej to można wytłumaczyć w taki sposób, że funkcje mt_ generują bardziej losowe wartości


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
-merlop-26-
post
Post #3





Goście







ok, a srand vs rand?
Go to the top of the page
+Quote Post
-merlop-26-
post
Post #4





Goście







Naprawdę nikt nie wie?
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


http://php.net/manual/pl/function.srand.php:
Cytat
Inicjuje generator liczb losowych za pomocą argumentu ziarno.
[...]
Informacja: Od PHP 4.2.0 nie ma potrzeby inicjalizować generatora liczb losowych funkcją srand() lub mt_srand(), ponieważ dzieje się to automatycznie.


Nie wiem jak w PHP w wersjach poniżej 4.2, ale w C przed generowaniem liczb losowych trzeba było "zamieszać w pojemniku". Inaczej wyniki kolejnych losowań zawsze były takie same po każdym uruchomieniu programu. Tzn:

1. uruchomienie programu i kolejne wyniki funkcji rand(): 85, 93, 13, 48 (tutaj widać, że liczby są losowe)
2. uruchomienie programu i kolejne wyniki funkcji rand(): 85, 93, 13, 48 (liczby są niby losowe, ale dokładnie takie same jak poprzednio)
3. uruchomienie programu i kolejne wyniki funkcji rand(): 85, 93, 13, 48 (liczby są niby losowe, ale dokładnie takie same jak wcześniej)
itd.

Natomiast po użyciu funkcji mieszającej (w przypadku PHP srand()) wyniki były za każdym razem inne. Ale jak napisałem powyżej, wywoływanie srand() nie jest obecnie konieczne (zakładam, że nigdzie nie używa się już PHP < 4.2).
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 07:12