Evaluates the binomial probability function.
#include <imsls.h>
float imsls_f_binomial_pdf (int k, int n, float p)
The type double function is imsls_d_binomial_pdf.
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.
The probability that a binomial random variable takes on a value equal to k.
The function imsls_f_binomial_pdf evaluates the probability that a binomial random variable with parameters n and p takes on the value k. It does this by computing probabilities of the random variable taking on the values in its range less than (or the values greater than) k. 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 times p, and are computed backward from n, otherwise. The smallest positive machine number, ε, is used as the starting value for computing 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.
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);
}
The probability that X is equal to 3 is 0.021434