java 关于平均值的计算!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 关于平均值的计算!相关的知识,希望对你有一定的参考价值。
定时任务 5秒钟内 获取的数据
System.out.println(RMSValue);
然后如何计算这个数据的平均值??
求个代码 T.T
在你的定时任务执行的方法外面定义一个全局的List,一定要是全局的
List numberList = new ArrayList();
然后在你每次打印RMSValue后
添加
numberList .add(RMSValue);再进行for循环
double sum =0.0;for(int i=0;i<numberList.size();i++)
double number = (double) numberList.get(i);
sum +=number;
System.out.println("平均数为:"+sum/numberList.size()); 参考技术A RMSValue是个什么,字符串?
如果是字符串的话,按条件分组能获取所有的数字,然后在进行平均值计算追问
就是这些数据啊
追答这些数据是什么类型的,或者你把RMSValue的赋值贴出来
参考技术B 把这些数字放在一个数组里面 然后for循环一下 能算出平均值了追问能不能帮忙写个代码 0.0 新手
追答我就给你写平均值的吧 你那个数据我这没有
double[] d=1,1,2,2,2.5;
double s=0;
for(int i=0;i<d.length;i++)
s+=d[i];
double a=s/d.length;
System.out.println(a);
简单统计 - 用于计算平均值、标准差等的 Java 包 [关闭]
【中文标题】简单统计 - 用于计算平均值、标准差等的 Java 包 [关闭]【英文标题】:Simple statistics - Java packages for calculating mean, standard deviation, etc [closed] 【发布时间】:2010-12-16 16:35:45 【问题描述】:您能否推荐一些简单的 Java 统计数据包?
我不一定需要任何高级的东西。我很惊讶java.lang.Math
包中似乎没有计算平均值的函数...
你们用什么来做这个的?
编辑
关于:
写一个简单的类有多难 计算均值和标准的 偏差?
嗯,不难。我只是在手工编码后才问这个问题。但是,当我需要这些最简单的功能时,手头没有这些功能,这只会增加我的 Java 挫败感。我不记得用心计算标准差的公式了:)
【问题讨论】:
您不必记住它。任何称职的语言都应该使访问基本描述性统计数据变得简单。看到有人问“写一个标准差有多难”函数很有趣…… 【参考方案1】:Apache Commons Math,特别是DescriptiveStatistics 和SummaryStatistics。
【讨论】:
谢谢。我认为没有真正的理由进一步寻找。您对 Apache Commons 感到满意,还是只是一般、足够好、可能会更好? 刚发现这个库,正好用来计算平均值、标准差。很容易拿起。 +1 API 使用double
而不是int
或long
,因此整数溢出不是问题。但是,它们无法处理超过 Integer.MAX_VALUE
双精度值的值集。
@MasterPeter - 但我敢肯定你记得 Wikipedia 的 URL :-) :-)
只是为了节省人们的点击次数:DescriptiveStatistics 将您发送的所有值保存在内存中,而 SummaryStatistics 不会将它们保存在内存中。【参考方案2】:
只回答这部分问题:
我很惊讶有 似乎不是一个函数 计算平均值 java.lang.Math 包...
我不认为我对此感到惊讶。 Java 类库没有实现许多“有用的算法”。他们没有实现一切。而且在这一点上,它们与其他编程语言没有什么不同。
实际上,如果 Sun 确实尝试在 J2SE 中实现太多,那将是一件坏事:
这将花费更多设计师/开发人员/技术文档人员的时间......没有明确的“投资回报”。
这会增加 Java 占用空间;例如“rt.jar”的大小。 (或者,如果他们试图缓解这种情况,则会导致平台更加复杂......)
对于数学领域的事物,您通常需要以不同的方式(使用不同的 API)实现算法以满足不同的需求。
对于复杂的事情,Sun 最好不要尝试“标准化”API,而是让其他感兴趣/技术熟练的团队来做;例如Apache 的人。
【讨论】:
【参考方案3】:我认为java中没有直接的方法和类。我们必须为自己建造它。对于您的要求,此代码将为您提供帮助。 Calculate Standard Deviation in java
【讨论】:
在 John Paulett 回答两年后回答。显然有图书馆可以做到这一点。除非出于教育目的,否则我不会实施您自己的。【参考方案4】: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);
【讨论】:
【参考方案5】:自 Java SE 8 以来,平台中添加了许多类:
java.util.DoubleSummaryStatistics java.util.IntSummaryStatistics java.util.LongSummaryStatistics【讨论】:
不错,但它不提供 getStd() 很糟糕 我不明白为什么计算偏差的方法没有添加到 IntSummaryStatistics。以上是关于java 关于平均值的计算!的主要内容,如果未能解决你的问题,请参考以下文章