Random Sample
Generates random numbers following a standard gamma distribution.
Controller: CodeCogs
Dependents
Interface
C++
Excel
Class RandomSample
The general formula for the probability density function of the gamma distribution is where is the <em>shape parameter</em>, is the <em>location parameter</em>, is the <em>scale parameter</em>, is the gamma function. The case where and is called the standard gamma distribution. Therefore the density of this particular distribution, which we also use with this random number generator is Using this class, the diagram below is generated from two distinct sequences of 1000 random numbers. Each pair of numbers are plotted against each other, to illustrate the standard gamma behaviour of this non-uniform random number generator.MISSING IMAGE!
1/gamma-378.png cannot be found in /users/1/gamma-378.png. Please contact the submission author.
Speed:
The average running time for generating 100,000,000 random numbers using this class on a 750MHz microprocessor is 38 seconds.References:
- NIST/SEMATECH e-Handbook of Statistical Methods, http://www.itl.nist.gov/div898/handbook/
- The Newran03 random number generator library of Robert Davies, http://www.robertnz.net/nr03doc.htm
Example 1
- The following example displays 40 random floating point numbers from a standard gamma distribution.
It uses two different generators to achieve this. The first generator uses a particular value
to initialize the seed, while the second one is using the system timer. Notice that it was necessary
to divide the timer with the MERSENNEDIV value in order to keep the seed in the (0, 1) interval.
Since the seed of the first generator is never changed, the first 20 numbers will always
remain the same. However since the second generator is initialized via the system timer,
the next 20 numbers will obviously vary with each execution of the program,
#include <iostream> #include <time.h> #include <codecogs/stats/dists/continuous/gamma/randomsample.h> using namespace std; int main() { Stats::Dists::Continuous::Gamma::RandomSample A(3.71, 0.175); Stats::Dists::Continuous::Gamma::RandomSample B(4.85, time(0) / MERSENNEDIV); for (int i = 0; i < 20; ++i) cout << A.genReal() << endl; cout << endl; for (int i = 0; i < 20; ++i) cout << B.genReal() << endl; return 0; }
Below you will find 20 numbers corresponding to the output of the first generator :6.87529 7.7321 4.06328 5.90752 9.7893 10.2651 3.52183 3.73508 2.43065 0.505826 1.67514 2.52252 4.4189 2.71961 2.33248 4.09904 4.40664 4.07805 1.78729 3.71478
Authors
- Lucian Bentea
Source Code
Source code is available when you buy a Commercial licence.
Not a member, then Register with CodeCogs. Already a Member, then Login.
Unknown
RandomSample::RandomSampleunknown( | double | alpha | |
double | s | ) |
Source Code
Source code is available when you buy a Commercial licence.
Not a member, then Register with CodeCogs. Already a Member, then Login.
Sample
doublesample( | double | alpha | |
double | seed = 0 | ) |
#include <time.h> ... sample(alpha, time(0) / MERSENNEDIV);If you require more advance behaviour, we strongly recommend that directly use the underlying class randomsample that is provided with this module.
Parameters
seed sets the initial seed for the random generator. Only used in the first call to this function
Source Code
Source code is available when you buy a Commercial licence.
Not a member, then Register with CodeCogs. Already a Member, then Login.