[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Why is the first random number after randomseed() not random?
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Mon, 19 Mar 2007 22:24:48 -0300
> "If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in
>
> j = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
That's almost exactly what Lua does:
http://www.lua.org/source/5.1/lmathlib.c.html#math_random
except for a concession to a SunOS bug and for dividing by RAND_MAX instead
of by RAND_MAX+1.
> I wonder if some variant of the advice could be followed to allow the return
> value to be more completely utilized, without having to resort to tricks like
> calling a rand() a few times to discard the start of the run?
At least the trick is trivial to implement and seems to cure the problem...
--lhf