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

Extreme Optimization User's Guide

User's Guide

Up: Discrete Probability Distributions Next: The Geometric Distribution Previous: The Bernoulli Distribution Contents

The Binomial Distribution

The binomial distribution models the number of successes in a fixed number of Bernoulli trials. A Bernoulli trial is an experiment with two possible outcomes, labeled 'success' and 'failure,' where the probability of success has a fixed value for all trials.

The binomial distribution has two parameters: the number of trials, and the probability of success in each trial. If the number of trials is equal to 1, the binomial distribution reduces to the Bernoulli distribution.

The binomial distribution arises whenever underlying events have two possible outcomes, and the probability of each outcome occurring remains constant. In general, when a sample of fixed size, n, is taken from an infinite population, and each member of the population independently has a probability p of having a specific property, then the number of members that have this property has a binomial distribution with parameters n and p. If the population is finite, then the same holds, provided the samples were taken independently and with replacement.

Practical examples include:

The binomial distribution is implemented by the BinomialDistribution class. It has two constructors. The first constructor takes one parameter: the number of trials. The probability of success is assumed to be 0.5. The following constructs a binomial distribution for 10 trials:

C# CopyCode imageCopy Code
BinomialDistribution bernoulli = new BinomialDistribution(10);
Visual Basic CopyCode imageCopy Code
Dim bernoulli As BinomialDistribution = New BinomialDistribution(10)

The second constructor has two parameters. The first parameter is once again the number of trials. The second parameter is the probability of success of a trial. The probability must be between 0 and 1. The following constructs a binomial distribution with 10 trials and probability of success 0.4:

C# CopyCode imageCopy Code
BinomialDistribution binomial2 = new BinomialDistribution(10, 0.4);
Visual Basic CopyCode imageCopy Code
Dim binomial2 As BinomialDistribution = New BinomialDistribution(10, 0.4)

The BinomialDistribution class has two specific properties. NumberOfTrials returns the number of trials. ProbabilityOfSuccess returns the probabiltiy of success of a trial.

BinomialDistribution 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 = BinomialDistribution.GetRandomVariate(random, 10);
double variate2 = BinomialDistribution.GetRandomVariate(random, 10, 0.4);
Visual Basic CopyCode imageCopy Code
Dim random As MersenneTwister = New MersenneTwister()
Dim variate1 As Double = BinomialDistribution.GetRandomVariate(random, 10)
Dim variate2 As Double = BinomialDistribution.GetRandomVariate(random, 10, 0.4)

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: The Geometric Distribution Previous: The Bernoulli 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