我是靠谱客的博主 坦率鼠标,最近开发中收集的这篇文章主要介绍java实现正态分布(钟形曲线),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

第一:如何实现正态分布

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

1、pom添加commons-math3的依赖

<!-- 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、代码实现

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);

最后

以上就是坦率鼠标为你收集整理的java实现正态分布(钟形曲线)的全部内容,希望文章能够帮你解决java实现正态分布(钟形曲线)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部