Esempio n. 1
0
double CRand::RandomNormal(bool bound)
{
	double number = (cos(2 * PI * Random()) * sqrt((-2) * log(Random())));
	if (!bound) return number;
	else
	{
		if ((number>=-2) && (number<=2)) return number;
		else return RandomNormal(bound);
	}
}
// random number - 0 -> scale, with normal distribution
// ignore results outside 3.5 stds from the mean
const double RandomNormalScaled(const double scale, const double m, const double s) 
{
	double res = -99;
	while (res < -3.5 || res > 3.5) res = RandomNormal(m, s);
	return (res / 3.5*s + 1) * (scale / 2.0);
}
Esempio n. 3
0
double CRand::RandomNormal(double mu, double sigma, bool bound)
{
	return (mu + sigma * RandomNormal(bound));
}