Program gives the implementations for the three concrete random variable classes declared in Program .
Program: SimpleRV, UniformRV and ExponentialRV Member Function Definitions
The implementation of the SimpleRV class is trivial because the RandomNumberGenerator class generates the desired distribution of random numbers. Consequently, the SimpleRV::Sample function simply calls RandomNumberGenerator::Next.
The UniformRV class is also quite simple. Given that the RandomNumberGenerator class generates a sequence random numbers uniformly distributed on the interval (0,1), the linear transformation
suffices to produce a sequence of random numbers uniformly distributed on the interval (u,v).
The ExponentialRV class generates a sequence of random numbers, , exponentially distributed on the interval and having a mean value . The numbers are said to be exponentially distributed because the probability that falls between 0 and z is given by
where . The function p(x) is called the probability density function . Thus,
Notice that is a value between zero and one. Therefore, given a random variable, , uniformly distributed between zero and one, we can obtain an exponentially distributed variable as follows:
Note, if is uniformly distributed on (O,1), then so too is . The implementation of the ExponentialRV::Sample function follows directly from Equation .