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.

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?

According to the source code for random.c, Ruby’s implementation of
rand uses the Mersenne Twister MT19937 which according to: Mersenne Twister - Wikipedia has “a very high order
of dimensional equidistribution.”

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?

Well, I would think that by definition it has a uniform distribution.
Can you give an example of a RNG that does not have a uniform
distribution?

Well, I would think that by definition it has a uniform distribution.
Can you give an example of a RNG that does not have a uniform distribution?

An RNG defined such that its output is the average of the outputs of N
independent uniform RNG’s will, if my very, very shaky memory of first
year undergrad maths can be relied upon, have a Gaussian distribution.
That’s the simplest I can think of…

Well, I would think that by definition it has a uniform distribution.
Can you give an example of a RNG that does not have a uniform
distribution?

The stat software I use has RNGs for the Bernoulli, beta, binomial,
Cauchy, chi-square, Erlang, exponential, F, gamma, geometric,
hypergeometric, lognormal, negative binomial, normal, poisson, T,
tabled, triangular, and Weibull distributions, as well as uniform.

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,

if you should want random numbers that follow some other distribution,
you can always pick a random number in the interval [0,1] and then
numerically find the position at which the cumulative distribution
reaches this value. Do this many times … this gives you a distribution
of points according to the distribution you’re looking for.
You don’t have to program it all by yourself, but you can use
the statistics2 package by Shin-ichiro Hara: see the readme here:

Well, I would think that by definition it has a uniform distribution.
Can you give an example of a RNG that does not have a uniform
distribution?

The stat software I use has RNGs for the Bernoulli, beta, binomial,
Cauchy, chi-square, Erlang, exponential, F, gamma, geometric,
hypergeometric, lognormal, negative binomial, normal, poisson, T,
tabled, triangular, and Weibull distributions, as well as uniform.

I guess that was a pretty dumb question. But I’m glad I asked it, as I
have never pondered RNGs that aren’t uniform. I’ll probably learn about
the algorithms that generate these other distributions if I ever have
time.

I guess that was a pretty dumb question. But I’m glad I asked it, as I
have never pondered RNGs that aren’t uniform. I’ll probably learn about
the algorithms that generate these other distributions if I ever have time.

Most of these are based on a uniform RNG. They either apply a function
to one or more numbers generated by a uniform random number generator.
Or they use a series of uniform RNs to do a mini-simulation and in the
process generate the required result.