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

Extreme Optimization User's Guide

User's Guide

Up: Discrete Probability Distributions Next: The Negative Binomial Distribution Previous: The Geometric Distribution Contents

The Hypergeometric Distribution

The hypergeometric distribution models a picking problem. Given a number of tagged and untagged objects, the number of tagged objects selected out of a fixed number of selections follows a hypergeometric distribution. For example, if a bag contains 8 white and 12 black balls, and 6 balls are taken out of the bag at random, then the number of white balls chosen follows a hypergeometric distribution.

The hypergeometric distribution is related to the binomial distribution. The main difference is that the binomial distribution uses selection with replacement, whereas the hypergeometric distribution uses selection without replacement.

The hypergeometric distribution has three parameters: the number of tagged objects, the number of untagged objects, and the number of selections.

Examples of the hypergeometric distribution are:

The Hypergeometric distribution is implemented by the HypergeometricDistribution class. It has one constructor with three parameters. The first parameter is an integer that specifies the number of items in the untagged population. The second parameter specifies the number of items in the tagged population. The thirs parameter specifies the number of samples drawn from the total population. The following constructs a hypergeometric distribution for 20 tagged items, 10 untagged items, and 15 samples:

C# CopyCode imageCopy Code
HypergeometricDistribution hyper = new HypergeometricDistribution(20, 10, 15);
Visual Basic CopyCode imageCopy Code
Dim hyper As HypergeometricDistribution = New HypergeometricDistribution(20, 10, 15)

The HypergeometricDistribution class has three specific properties. TaggedPopulation returns the number of items in the tagged population. UntaggedPopulation returns the number of items in the untagged population. NumberOfSamples returns the number of samples drawn from the entire population.

HypergeometricDistribution has one static (Shared in Visual Basic) method, GetRandomVariate, which generates a random variate using a user-supplied uniform random number generator. The first parameter is the random number generator. The remaining 3 parameters correspond to the parameters of the constructor.

C# CopyCode imageCopy Code
MersenneTwister random = new MersenneTwister();
double variate = HypergeometricDistribution.GetRandomVariate(random, 20, 10, 15);
Visual Basic CopyCode imageCopy Code
Dim random As MersenneTwister = New MersenneTwister()
Dim variate As Double = HypergeometricDistribution.GetRandomVariate(random, 20, 10, 15)

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