我是靠谱客的博主 坦率鼠标,这篇文章主要介绍java实现正态分布(钟形曲线),现在分享给大家,希望可以做个参考。

正态分布又叫钟形曲线,下面是java的实现方法:

第一:如何实现正态分布

实现代码也可以自己写不过比较麻烦,我这里是参考的网上的引入commons-math3的方式,实现起来很简单。

1、pom添加commons-math3的依赖

复制代码
1
2
3
4
5
6
7
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>3.6</version> </dependency>

2、代码实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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);

最后

以上就是坦率鼠标最近收集整理的关于java实现正态分布(钟形曲线)的全部内容,更多相关java实现正态分布(钟形曲线)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部