Java数据结构:随机生成正太分布数

这里用到了随机生成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));  //生成正太分布数
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42192693/article/details/82595746