
From:  Joseph Wakeling 
Subject:  [Helpgsl] Uniformly distributed int in [0,n1] 
Date:  Sat, 17 Dec 2005 20:43:50 +0100 
Useragent:  Mozilla Thunderbird 1.0.6 (X11/20050715) 
Hello all,As I mentioned in earlier emails I've been playing around a bit with the random number generators in the GSL.
I'm wondering if someone can advise on appropriate ways to generate uniformlydistributed ints in the range [0,n1]. My traditional way has always been to take a function ranf() which returns a floatingpoint number in [0,1), and do,
x = (int) (n*ranf());But, if we suppose I have a function like the rand() function in C that returns an int between 0 and RAND_MAX  1, would it be appropriate to do,
x = rand()%n; Or would this unduly affect the uniform distribution?I note that the gsl_rng_uniform_int function uses a method like this (simplifying slightly...;):
do { x = rand()/(RAND_MAX/n); } while( x >= n);Could someone advise? If they are equivalent, what about the speed of these alternatives?
Many thanks,  Joe
[Prev in Thread]  Current Thread  [Next in Thread] 