[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Uniform Random Number Generator

Joel VanderWerf

5/22/2007 8:00:00 PM

Roland Mai wrote:
> I need a random number generator that generates random numbers with a
> uniform distribution.
>
> I am not sure what rand does in ruby and I can't seem to find it online
> either. My initial assumption is that it follows a uniform distribution,
> but
> I can't tell.
>
> Any ideas?

Yes, rand() is uniform in the interval 0 <= x < 1. It's based on MT19937.

If you have a working ri installation, then you can read about it this way:

$ ri Kernel#rand | cat
------------------------------------------------------------ Kernel#rand
rand(max=0) => number
------------------------------------------------------------------------
Converts max to an integer using max1 = max.to_i.abs. If the
result is zero, returns a pseudorandom floating point number
greater than or equal to 0.0 and less than 1.0. Otherwise, returns
a pseudorandom integer greater than or equal to zero and less than
max1. Kernel::srand may be used to ensure repeatable sequences of
random numbers between different runs of the program. Ruby
currently uses a modified Mersenne Twister with a period of
219937-1.

srand 1234 #=> 0
[ rand, rand ] #=> [0.191519450163469,
0.49766366626136]
[ rand(10), rand(1000) ] #=> [6, 817]
srand 1234 #=> 1234
[ rand, rand ] #=> [0.191519450163469,
0.49766366626136]


--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407