The uniform distribution models a situation where a fixed number of outcomes all have an equal probability of
occurring.
A uniform distribution has two parameters: the lower limit and the upper limit. The upper limit is exclusive,
which means the highest possible value is actually one less than the upper limit.
Examples of the uniform distribution are:
- Coin tossing when the coin is known to be unbiased has a uniform distribution with two possible values: 0
('heads') and 1 ('tails'). The lower limit is 0. The upper limit is 2.
- When rolling dice, the score has a uniform distribution with lower limit 1 and upper limit 7.
- When choosing an element at random from a collection of n elements, the (zero-based) index has a
uniform distribution with lower limit 0 and upper limit n.
The discrete uniform distribution is implemented by the DiscreteUniformDistribution class. It has two
constructors. The first constructor takes one parameter: the upper limit of the distribution. This limit is
exclusive. A sample from the distribution is always strictly smaller than the upper limit. The following constructs a
discrete uniform distribution with variates in the range 0 to 4, inclusive:
| C# |
Copy
|
ContinuousUniformDistribution uniform1
= new ContinuousUniformDistribution();
ContinuousUniformDistribution uniform2
= new ContinuousUniformDistribution(1.0);
ContinuousUniformDistribution uniform3
= new ContinuousUniformDistribution(0.0, 1.0);
|
| Visual Basic |
Copy
|
Dim uniform1 As ContinuousUniformDistribution
= New ContinuousUniformDistribution()
Dim uniform2 As ContinuousUniformDistribution
= New ContinuousUniformDistribution(1.0)
Dim uniform3 As ContinuousUniformDistribution
= New ContinuousUniformDistribution(0.0, 1.0)
|
| C# |
Copy
|
DiscreteUniformDistribution uniform1 = new DiscreteUniformDistribution(5);
|
| Visual Basic |
Copy
|
Dim uniform1 As DiscreteUniformDistribution = New DiscreteUniformDistribution(5)
|
The second constructor has two parameters. The first parameter is the lower limit for the distribution. The second
parameter is the upper limit of the distribution. The following constructs a discrete uniform distribution for the
number of eyes when rolling one dye:
| C# |
Copy
|
MersenneTwister random = new MersenneTwister();
double variate
= ContinuousUniformDistribution.GetRandomVariate(random, 0.0, 1.0);
|
| Visual Basic |
Copy
|
Dim random As MersenneTwister = New MersenneTwister()
Dim variate As Double
= ContinuousUniformDistribution.GetRandomVariate(random, 0.0, 1.0)
|
| C# |
Copy
|
DiscreteUniformDistribution uniform2 = new DiscreteUniformDistribution(1, 7);
|
| Visual Basic |
Copy
|
Dim uniform2 As DiscreteUniformDistribution = New DiscreteUniformDistribution(1, 7)
|
The DiscreteUniformDistribution class has two specific properties, LowerBound and UpperBound, which return the
lower and upper limits of the distribution.
DiscreteUniformDistribution has one static (Shared in Visual Basic) method, Sample, which
generates a random variate using a user-supplied uniform random number generator. It has two overloads, corresponding
to each of the two constructors.
| C# |
Copy
|
MersenneTwister random = new MersenneTwister();
double variate1 = DiscreteUniformDistribution.GetRandomVariate(random, 4);
double variate2 = DiscreteUniformDistribution.GetRandomVariate(random, 1, 7);
|
| Visual Basic |
Copy
|
Dim random As MersenneTwister = New MersenneTwister()
Dim variate1 As Double = DiscreteUniformDistribution.GetRandomVariate(random, 4)
Dim variate2 As Double = DiscreteUniformDistribution.GetRandomVariate(random, 1, 7)
|
The above example uses the MersenneTwister class to generate uniform random numbers.
For details of the properties and methods common to all discrete probability distribution classes, see the topic
on class.