java实现生成正态分布数据(附完整源码)
时间: 2023-12-08 10:03:17 浏览: 54
以下是Java实现生成正态分布数据的代码:
```java
import java.util.Random;
public class NormalDistribution {
private double mean;
private double stdDev;
private Random rand;
public NormalDistribution(double mean, double stdDev) {
this.mean = mean;
this.stdDev = stdDev;
this.rand = new Random();
}
public double generate() {
double u1 = rand.nextDouble();
double u2 = rand.nextDouble();
double z = Math.sqrt(-2.0 * Math.log(u1)) * Math.cos(2.0 * Math.PI * u2);
return mean + stdDev * z;
}
public static void main(String[] args) {
NormalDistribution nd = new NormalDistribution(0, 1);
for (int i = 0; i < 10; i++) {
System.out.println(nd.generate());
}
}
}
```
代码中,我们定义了一个NormalDistribution类,用来生成正态分布数据。构造函数需要传入期望值和标准差,同时初始化一个Random对象。generate方法则是根据正态分布的公式生成随机数,返回值为生成的随机数。
在main方法中,我们实例化了一个NormalDistribution对象,并且生成了10个随机数进行输出。
需要注意的是,生成的随机数是有可能超出期望值加减标准差的范围的,因此需要根据实际需求进行修正。