[c++] srand( time( NULL ) );
Ostatnio zmodyfikowano 2015-09-23 21:27
Morksil Temat założony przez niniejszego użytkownika |
[c++] srand( time( NULL ) ); » 2015-09-22 21:04:33 Cześć! Mam prosbe odnosnie tej funkcji. Dowiedzialem sie o niej podczas kursu c++, który właśnie przerabiam. Wiem, że jest wykorzystywana przy pseudolosowaniu liczba całkowitych. Rozumiem, że srand określa punkt startowy mechanizmu generowania liczb całkowitych. "time" odnosi sie do biblioteki ctime i pozwala na odczytanie czasu z komputera i przekształcenie go na liczbę. Nie do końca rozumiem zapis NULL w nawiasie odnoszacym sie do "time". Mógłby mi ktoś to wytłumaczyć w prosty sposób? Dopiero sie ucze a nie chcę iśc dalej jeśli nie rozumiem czegoś po drodze. Jeszcze chciałbym się dowiedzieć w jakich przypadkach zapis ten może znajdować się w innym miejscu kodu a nie tlyko na początku.
Pozdrawiam!!! |
|
pekfos |
» 2015-09-22 21:20:25 Nie do końca rozumiem zapis NULL w nawiasie odnoszacym sie do "time". | NULL to stała. |
|
carlosmay |
» 2015-09-22 21:24:48 Zwykle jest to na początku, ale ważne jest żeby to było przed użyciem rand().
Parametr o wartości NULL, 0, ustawia ziarno na postawie aktualnego czasu. |
|
pekfos |
» 2015-09-22 21:26:23 Parametr o wartości NULL, 0, ustawia ziarno na postawie aktualnego czasu. |
Co za bzdura. |
|
carlosmay |
» 2015-09-22 21:44:04 Funkcja srand () pozwala na ustawienie własnego zarodka generatora liczb losowych i zainicjowanie odmiennej od poprzedniej sekwencji liczb losowych. Program w roli takiego zarodka wykorzystuje początkowo wartość funkcji time (0) . Wywołanie time (0) zwraca bieżący czas kalendarzowy, często reprezentowany liczbą sekund od pewnej ustalonej daty odniesienia. Stephen Prata. | |
|
pekfos |
» 2015-09-22 21:47:13 No i co? time(0) zwraca aktualny czas, ale bynajmniej nie dlatego, że podano akurat 0. |
|
carlosmay |
» 2015-09-22 22:31:39 Czyli to funkcja time() zwraca liczbę sekund od 1 sty 1970r, która to liczba używana jest przez funkcję srand(), a stała NULL jest tam, bo nie przekazujemy do funkcji time() zmiennej, do której funkcja time() mogłaby zapisać zwróconą wartość? srand( time( NULL ) ); srand( zmienna );
|
|
Monika90 |
» 2015-09-22 22:58:40 time(&czas); zwraca czas i zapisuje ten sam czas do zmiennej czas, a time(nullptr); tylko zwraca i niczego nie zapisuje, bo nie ma gdzie. Zamiast NULL jest nullptr, ponieważ NULL jest przestarzałe (rand zresztą też). |
|
« 1 » 2 |