正态分布又叫钟形曲线,下面是java的实现方法:
第一:如何实现正态分布实现代码也可以自己写不过比较麻烦,我这里是参考的网上的引入commons-math3的方式,实现起来很简单。
1、pom添加commons-math3的依赖
org.apache.commons commons-math3 3.6
2、代码实现
import org.apache.commons.math3.distribution.NormalDistribution; //1、构建正态分布 Double y=0.0; //期望值,标准正态分布y=0 Double z=1.0; //方差,标准正态分布z=1 NormalDistribution normalDistributioin = new NormalDistribution(y,z); //2、根据x获取函数值增长速度即正态分布曲线值 double speed = normalDistributioin.density(x); System.out.println(speed); //3、根据x获取累计面积值即正态分布值 double area = normalDistributioin.cumulativeProbability(x); System.out.println(area);第二:获取符合正态分布的随机数
Java Random中 封装有获取正态分布的方法nextGaussian:
import java.util.Random; Random random = new Random(); // 标准正态分布随机数 Double getNum = random.nextGaussian(); // 期望值y,方差z的正态分布随机数(取值与真正的正态分布有极细小的差别,但大致符合) Double getNum2 = Math.sqrt(z) * random.nextGaussian() + y; System.out.println(getNum); System.out.println(getNum2);



