Portál AbcLinuxu, 12. května 2025 10:51
int waitTime = 0; srand(time(NULL)); waitTime = rand()%101; printf("%d\n", waitTime);Problém je, že při generování čísla v relativně bízkém časovém úseku, dostanu stejné hodnoty. Potřeboval bych, aby čísla byla opravdu rozdílná. Díky za odpověď.
Řešení dotazu:
gettimeofday()
nebo třeba hodnotu načtenou z /dev/urandom
. Případně si stav generátoru ukládat do pomocného souboru.
/dev/urandom
, tak by mohol vynechať ten proces seedovania a generovania nasledujúceho (pseudo)náhodného čísla. Chcem tým povedať, že sa oplatí buď priamo použiť /dev/urandom
(ako pseudonáhodné číslo) alebo naseedovať (len pri spustení programu, určite nie pri každom generovaní nového čísla) hodnotou z /dev/random
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.