7.9 Binomial distribution

R script for binomial distribution

Dbinom
## function (k, n, pe) 
## {
##     if (n <= 0 | pe <= 0 | pe >= 1) {
##         warning("bad args in binomial distribution")
##         return(NULL)
##     }
##     if (k < 0) {
##         warning("bad k in binomial distribution")
##         return(NULL)
##     }
##     if (k > n) 
##         return(0)
##     return(exp(k * log(pe) + (n - k) * log(1 - pe) + gammln(n + 
##         1) - gammln(k + 1) - gammln(n - k + 1)))
## }
## <bytecode: 0x000001e2acb19da8>
## <environment: namespace:math>
Pbinom
## function (k, n, pe) 
## {
##     if (n <= 0 | pe <= 0 | pe >= 1) {
##         warning("bad args in binomial distribution")
##         return(NULL)
##     }
##     if (k < 0) {
##         warning("bad k in binomial distribution")
##         return(NULL)
##     }
##     if (k > n) 
##         return(1)
##     return(1 - betai(k, n - k + 1, pe))
## }
## <bytecode: 0x000001e2acb7e7a8>
## <environment: namespace:math>
Qbinom
## function (p, n, pe) 
## {
##     if (n <= 0 | pe <= 0 | pe >= 1) {
##         warning("bad args in binomial distribution")
##         return(NULL)
##     }
##     if (k < 0) {
##         warning("bad k in binomial distribution")
##         return(NULL)
##     }
##     inc = 1
##     k = max(0, min(n, floor(n * pe)))
##     if (p < Pbinom(k, n, pe)) {
##         k = max(k - inc, 0)
##         inc = inc * 2
##         while (p < Pbinom(k, n, pe)) {
##             k = max(k - inc, 0)
##             inc = inc * 2
##         }
##         kl = k
##         ku = k + inc/2
##     }
##     else {
##         k = min(k + inc, n + 1)
##         inc = inc * 2
##         while (p > Pbinom(k, n, pe)) {
##             k = min(k + inc, n + 1)
##             inc = inc * 2
##         }
##         ku = k
##         kl = k - inc/2
##     }
##     while (ku - kl > 1) {
##         k = (kl + ku)/2
##         if (p < Pbinom(k, n, pe)) 
##             ku = k
##         else kl = k
##     }
##     return(kl)
## }
## <bytecode: 0x000001e2acbe16c8>
## <environment: namespace:math>