Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] srand,mt_srand - o co chodzi?
Forum PHP.pl > Forum > Przedszkole
merlop-26
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ę
mstraczkowski
Najprościej to można wytłumaczyć w taki sposób, że funkcje mt_ generują bardziej losowe wartości
merlop-26
ok, a srand vs rand?
merlop-26
Naprawdę nikt nie wie?
sowiq
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).
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.