Initializing random seeds
Ulf Wiger (AL/EAB)
ulf.wiger@REDACTED
Wed Feb 8 16:30:10 CET 2006
Corrado Santoro wrote:
> Yes! I saw the source code in random.erl, and maybe my
> solution of using an ad hoc process for random number
> generation is the key. Any other hint???
If you're always spawning from the same process,
perhaps you could call now() before each time, and
permute the microsec component from the right into
the seed of the parent process?
new_seed() ->
{S1,S2,S3} =
case get(random_seed) of
undefined ->
random:seed(),
get(random_seed);
Seed -> Seed
end,
{_, _, MSecs} = now(),
random:seed({S2,S3,MSecs}),
get(random_seed).
A curious aspect of random.erl is that the
random:seed/1 function returns the _old_ value,
and there is no get_seed() function.
Anyway, something like the above should give you
more varying distributions.
Regards,
Uffe
More information about the erlang-questions
mailing list