Quote:
Originariamente inviato da Ubi-Wan
Per generare un valore tra 0 e n compresi usa rand() % (n+1) .
|
Se fai così, rischi di trovarti con un generatore che ha delle proprietà peggiori di quello di partenza.
Ne abbiamo parlato diffusamente alcuni post fa.
Io farei in due tempi (floor è definita in math.h e restituisce un double):
Codice:
double frand() /* random floating-point value in [0,1) */
{
return (double)rand()/(RAND_MAX+1.0);
}
int irand(int min, int sup) /* random integer value between min and sup-1 */
{
return (int)floor(frand()*(sup-min))+min;
}