//产生(min,max)之间均匀分布的随机数
double AverageRandom(double min,double max)
{
int MINnteger = (int)(min*10000);
int MAXnteger = (int)(max*10000);
int randInteger = rand()*rand();
int diffInteger = MAXnteger - MINnteger;
int resultInteger = randInteger % diffInteger + MINnteger;
return resultInteger/10000.0;
}
//正态分布概率密度函数
double Normal(double x,double miu,double sigma)
{
return 1.0/(sqrt(2*3.14)*sigma) * exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma));
}
//产生正态分布随机数
double Random_Normal(double miu,double sigma,double min,double max)
{
double x;
double dScope;
double y;
do
{
x = AverageRandom(min,max);
y = Normal(x, miu, sigma);
dScope = AverageRandom(0, Normal(miu,miu,sigma));
}while( dScope > y);
return x;
}
double AverageRandom(double min,double max)
{
int MINnteger = (int)(min*10000);
int MAXnteger = (int)(max*10000);
int randInteger = rand()*rand();
int diffInteger = MAXnteger - MINnteger;
int resultInteger = randInteger % diffInteger + MINnteger;
return resultInteger/10000.0;
}
//正态分布概率密度函数
double Normal(double x,double miu,double sigma)
{
return 1.0/(sqrt(2*3.14)*sigma) * exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma));
}
//产生正态分布随机数
double Random_Normal(double miu,double sigma,double min,double max)
{
double x;
double dScope;
double y;
do
{
x = AverageRandom(min,max);
y = Normal(x, miu, sigma);
dScope = AverageRandom(0, Normal(miu,miu,sigma));
}while( dScope > y);
return x;
}