简单统计 - 用于计算平均值、标准差等的 Java 包 [已关闭]

问题描述 投票:0回答:5

您能推荐一些简单的 Java 统计包吗?

我不一定需要任何先进的东西。让我感到非常惊讶的是,

java.lang.Math
包中似乎没有计算平均值的函数...

你们用什么来做这个?


编辑

关于:

写一个简单的类有多难 计算平均值和标准 偏差?

嗯,不难。我只是在手工编码后才问这个问题。但是,当我需要这些最简单的函数时,手边却没有可用的函数,这只会让我对 Java 感到更加沮丧。我不记得计算标准差的公式了:)

java math statistics package
5个回答

25
投票

18
投票

仅回答这部分问题:

我很惊讶竟然有 似乎不是一个函数 计算平均值 java.lang.Math 包...

我认为我发现这一点并不感到惊讶。有很多“有用的算法”Java 类库没有实现。他们并没有实施一切。在这一点上,它们与其他编程语言没有什么不同。

实际上,如果 Sun 确实尝试在 J2SE 中实现太多内容,那将是一件坏事:

  1. 这将需要更多的设计师/开发人员/技术文档人员时间......并且没有明确的“投资回报”。

  2. 这会增加 Java 占用空间;例如“rt.jar”的大小。 (或者如果他们试图减轻这种情况,则会导致平台更加复杂......)

  3. 对于数学领域的事物,您经常需要以不同的方式(使用不同的API)实现算法来满足不同的需求。

  4. 对于复杂的事情,Sun 最好不要尝试“标准化”API,而是将其留给其他一些感兴趣/熟练的团队来做;例如阿帕奇人。


5
投票
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);
    }
}

1
投票

我认为java中没有直接的方法和类。我们必须为自己建造它。对于您的要求,此代码将为您提供帮助。 用java计算标准差

© www.soinside.com 2019 - 2024. All rights reserved.