IMSL C Stat Library
binomial_pdf
Evaluates the binomial probability function.
Synopsis
#include <imsls.h>
float imsls_f_binomial_pdf (int k, int n, float p)
The type double function is imsls_d_binomial_pdf.
Required Arguments
int k (Input)
Argument for which the binomial probability function is to be evaluated.
int n (Input)
Number of Bernoulli trials.
float p (Input)
Probability of success on each trial.
Return Value
The probability that a binomial random variable takes on a value equal to k.
Description
The function imsls_f_binomial_pdf evaluates the probability that a binomial random variable with parameters n and p takes on the value k. Specifically,
where k = {0,1,2,,n}, n1, 0p1, and
These probabilities are computed by the recursive relationship:
To avoid the possibility of underflow, the probabilities are computed forward from 0, if k is not greater than n × p, and are computed backward from n otherwise. The smallest positive machine number, ɛ, is used as the starting value for summing the probabilities, which are rescaled by (1-p)nɛ if forward computation is performed and by pnɛ if backward computation is done.
For the special case of p = 0, imsls_f_binomial_pdf is set to 0 if k is greater than 0 and to 1 otherwise; and for the case p = 1, imsls_f_binomial_pdf is set to 0 if k is less than n and to 1 otherwise.
Examples
Suppose X is a binomial random variable with n = 5 and p = 0.95. In this example, we find the probability that X is equal to 3.
 
#include <stdio.h>
#include <imsls.h>
 
int main()
{
    int k = 3, n = 5;
    float p = 0.95, prob;
 
    prob = imsls_f_binomial_pdf(k, n, p);
    printf("The probability that X is equal to "
        "%d is %f\n", k, prob);
}
Output
 
The probability that X is equal to 3 is 0.021434