Generator liczb pseudolosowych (cz.1)
Chcemy uzyskać generator o rozkładzie normalnym oraz Cauchy’ego… Na początek jednak jako podstawa potrzebny nam będzie generator o rozkładzie równomiernym.
Zdefiniujmy sobie klasę RandomNumberGenerator
:
class RandomNumberGenerator {
private:
double a,b,c;
static RandomNumberGenerator* instance;
protected:
RandomNumberGenerator();
public:
static RandomNumberGenerator* getInstance();
void init();
double getFromUniformDistribution();
double getFromNormalDistribution();
double getFromCauchyDistribution();
};
Klasa jak widać będzie miała trzy metody do pobierania losowych wartości z różnych rozkładów. Zaimplementujmy pierwszy rozkład, używając do tego celu tzw. ogólnego generatora liniowego. Generator ten realizuje schemat liniowy:
Dowiedz się więcej »Generator liczb pseudolosowych (cz.1)