Java資料結構:隨機生成正太分佈數
阿新 • • 發佈:2019-01-10
正態分佈數≈均值+方差*(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)); //生成正太分佈數 } } }