Pet*_*háč 65 java math statistics packages
你能建议任何简单的Java统计软件包吗?
我不一定需要任何先进的东西.我很惊讶,似乎没有一个函数来计算java.lang.Math
包中的平均值...
你们有什么用呢?
编辑
关于:
编写一个计算均值和标准差的简单类有多难?
好吧,不难.手工编码之后我才问过这个问题.但是,当我需要这些功能时,它只会增加我的Java挫折感,而不是让这些最简单的功能可用.我不记得用心计算stdev的公式:)
Joh*_*ett 80
Apache Commons Math,特别是DescriptiveStatistics和SummaryStatistics.
Pet*_*háč 22
从Java SE 8开始,平台中添加了许多类:
Ste*_*n C 18
只是回答这部分问题:
我很惊讶在java.lang.Math包中似乎没有计算Mean的函数...
我觉得发现这个并不让我感到惊讶.Java类库没有实现许多"有用的算法".他们没有实现一切.在这方面,它们与其他编程语言没有什么不同.
实际上,如果Sun试图在J2SE中实现太多,那将是一件坏事:
这需要更多的设计师/开发人员/技术文档时间......没有明确的"投资回报".
它会增加Java的占用空间; 例如"rt.jar"的大小.(或者如果他们试图减轻这种情况,那么会导致更多的平台复杂性......)
对于数学空间中的事物,您经常需要以不同的方式(使用不同的API)实现算法,以满足不同的需求.
对于复杂的事情,Sun可能最好不要试图"标准化"API,而是将其留给其他感兴趣/熟练的团队去做; 例如Apache人.
小智 6
import java.util.*;
public class stdevClass {
public static void main(String[] args){
int [] list = {1,-2,4,-4,9,-6,16,-8,25,-10};
double stdev_Result = stdev(list);
System.out.println(stdev(list));
}
public static double stdev(int[] list){
double sum = 0.0;
double mean = 0.0;
double num=0.0;
double numi = 0.0;
double deno = 0.0;
for (int i : list) {
sum+=i;
}
mean = sum/list.length;
for (int i : list) {
numi = Math.pow((double) i - mean), 2);
num+=numi;
}
return Math.sqrt(num/list.length);
}
}
Run Code Online (Sandbox Code Playgroud)