Extreme Optimization > User's Guide > Statistics Library > Discrete Probability Distributions > The Discrete Uniform Distribution

Extreme Optimization User's Guide

User's Guide

Up: Discrete Probability Distributions Next: Hypothesis Tests Previous: The Poisson Distribution Contents

The Discrete Uniform Distribution

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:

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# CopyCode imageCopy Code
DiscreteUniformDistribution uniform1 = new DiscreteUniformDistribution(5);
Visual Basic CopyCode imageCopy Code
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# CopyCode imageCopy Code
DiscreteUniformDistribution  uniform2 = new DiscreteUniformDistribution(1, 7);
Visual Basic CopyCode imageCopy Code
Dim uniform2 As DiscreteUniformDistribution = New DiscreteUniformDistribution(1, 7)

The DiscreteUniformDistribution class has two specific properties, Minimum and Maximum, which return the lower and upper limits of the distribution.

DiscreteUniformDistribution has one static (Shared in Visual Basic) method, GetRandomVariate, 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# CopyCode imageCopy Code
MersenneTwister random = new MersenneTwister();
double variate1 = DiscreteUniformDistribution.GetRandomVariate(random, 4);
double variate2 = DiscreteUniformDistribution.GetRandomVariate(random, 1, 7);
Visual Basic CopyCode imageCopy Code
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 Mersenne Twister to generate uniform random numbers.

For details of the properties and methods common to all discrete probability distribution classes, see the topic on DiscreteDistribution class.

Up: Discrete Probability Distributions Next: Hypothesis Tests Previous: The Poisson Distribution Contents

Overview
Introduction
Features
Documentation
QuickStart Samples
Sample Applications
Downloads
Get it now!
Download trial version
How to Buy
Information
Resources
Contact Us
Search

"The Extreme Optimization Statistics Library for .NET is a major boon for those doing statistical work in .NET. I strongly recommend this product."
- Marc Brooks

"I have made it my mission to institutionalize the value of good API design.  I strongly believe that this is key to making developers more productive and happy on our platform. It is clear that you value good API design in your work, and take to heart developer productivity and synergy with the .NET framework."
- Brad Abrams,
Lead Program Manager, Microsoft.

This is a partial list of companies who are using our libraries:
ABB Robotics
Allstate
Applied Materials
Arcam
Astra Schedule
Babson College
Canadian Council on Learning
Canyon Associates
Caxton Associates
CECity
Constellation Energy
CreditSights
DeepOcean
Duke University
Dynamotive
Elecsoft
Engelhard Corporation
Epcor
Equipoise Software
Galileo International
GAM UK
Gammex
GlaxoSmithKline
Global Matrix
The Hartford
Infinera Corporation
Intel
JDS Uniphase
LaBranche & Co.
Learning & Skills Council
Jacobs Consultancy
Litman Gregory
Lucas Systems
Malvern Instruments
Medrio
Merck & Co.
Mintera.
Monitor Software
MorningStar
NanoString Technologies
Paletta Invent
Parametric Portfolio Associates
Prosanos
RATA Associates
RiskShield
Ramboll
Standard & Poor's
Strategic Analysis Corporation
Univ. of Alicante
Univ. of South Carolina
vielife
Xerox
US Army