这里用到了随机生成0-1的随机浮点数方法,看不懂的看本人另一篇博客https://blog.csdn.net/qq_42192693/article/details/82595314
正态分布数≈均值+方差*(x) x:为随机分布-均值,详情如下
public class 产生正太分布的随机生成数 {
static double rand01(double[] r) { //生成0-1的随机数
double base, u, v, p, temp1, temp2, temp3;
base = 256.0;
u = 17.0;
v = 139.0;
temp1 = u * (r[0]) + v;
temp2 = (int) (temp1 / base);
temp3 = temp1 - temp2 * base;
r[0] = temp3;
p = r[0] / base;
return p;
}
static double randZT(double u,double t,double r[]){
int i=0;
double total=0.0;
for(i=0;i<12;i++){
total+=rand01(r); //累加
}
return u+t*(total-6.0); //6.0为12个0-1的随机数的平均值,很好理解
}
public static void main(String[] args) {
int i;
double m,n;
double[]r={5.0};
m=2.0; //m为均值,n为标准差(方差是标准差的平方)
n=3.5;
for(i=0;i<10;i++){
System.out.println(randZT(m,n,r)); //生成正太分布数
}
}
}