Ejemplo n.º 1
0
double RandGen::RandReal(double dmin, double dmax)
// precondition: dmin <= dmax     
// postcondition: returns double in [dmin..dmax)     
{
  double width = dmax - dmin;
  return RandReal() * width + dmin;
}
Ejemplo n.º 2
0
double RandGen::RandBell(double average)

//precondition: average<0

//postcondition: returns double in [0..high value)

//				return values are normall distributed

{
	
	double fac,r,v1,v2,value;
	
	
	
	do{
		
		v1=2.0*RandReal()-1.0;
		
		v2=2.0*RandReal()-1.0;
		
		r=v1*v1+v2*v2;
		
	}while(r>=1.0 || r==0.0);
	
	
	
	fac=sqrt(-2.0*log(r)/r);
	
	value=(average+(v1*fac)*(average*.25));
	
	if(value<0)
		
		return 0;
	
	else
		
		return value;
	
}
Ejemplo n.º 3
0
int RandGen::RandInt(int max)
// precondition: max > 0
// postcondition: returns int in [0..max)     
{  
  return int(RandReal() * max);
}