Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Statistics Library User's Guide
    • Statistical Variables
    • Numerical Variables
    • Statistical Models
    • Regression Analysis
    • Analysis of Variance
    • Time Series Analysis
    • Multivariate Analysis
    • Continuous Distributions
    • Discrete Distributions
    • Multivariate Distributions
    • Kernel Density Estimation
    • Hypothesis Tests
    • Appendices
  • Discrete Distributions
    • Discrete Probability Distributions
    • The Bernoulli Distribution
    • The Binomial Distribution
    • The Geometric Distribution
    • The Hypergeometric Distributions
    • The Negative Binomial Distribution
    • The Poisson Distribution
    • The Uniform Distribution
  • The Uniform Distribution

The Uniform Distribution

Extreme Optimization Numerical Libraries for .NET Professional

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 argument: 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 samples in the range 0 to 4, inclusive:

C#
VB
C++
F#
Copy
var uniform1 = new DiscreteUniformDistribution(5);
Dim uniform1 = New DiscreteUniformDistribution(5)

No code example is currently available or this language may not be supported.

let uniform1 = DiscreteUniformDistribution(5)

The second constructor takes two arguments. The first argument 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#
VB
C++
F#
Copy
var uniform2 = new DiscreteUniformDistribution(1, 7);
Dim uniform2 = New DiscreteUniformDistribution(1, 7)

No code example is currently available or this language may not be supported.

let uniform2 = 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 sample using a user-supplied uniform random number generator. It has two overloads, corresponding to each of the two constructors.

C#
VB
C++
F#
Copy
var random = new MersenneTwister();
int sample1 = DiscreteUniformDistribution.Sample(random, 4);
int sample2 = DiscreteUniformDistribution.Sample(random, 1, 7);
Dim random = New MersenneTwister()
Dim sample1 = DiscreteUniformDistribution.Sample(random, 4)
Dim sample2 = DiscreteUniformDistribution.Sample(random, 1, 7)

No code example is currently available or this language may not be supported.

let random = MersenneTwister()
let sample1 = DiscreteUniformDistribution.Sample(random, 4)
let sample2 = DiscreteUniformDistribution.Sample(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 Discrete Distributions.

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.