----------------------------------------------------------------------------- -- | -- Module : Numeric.Random.Distribution.Binomial -- Copyright : (c) Matthew Donadio 2003 -- License : GPL -- -- Maintainer : m.p.donadio@ieee.org -- Stability : experimental -- Portability : portable -- -- UNTESTED -- -- Module for transforming a list of uniform random variables into a -- list of binomial random variables. -- -- Reference: Ross -- ---------------------------------------------------------------------------- module Numeric.Random.Distribution.Binomial (binomial) where -- * Functions -- | Generates a list of binomial random variables from a list -- of uniforms binomial :: Int -- ^ n -> Double -- ^ p -> [Double] -- ^ U -> [Double] -- ^ X binomial n p us = sum xi : binomial n p (drop n us) where xi = map (\u -> if u < p then 1 else 0) (take n us)