java - 任何大小的数组java的标准差

标签 java arrays math methods

Java中如何计算一个数组的标准占卜?如您所见,我已经计算了均值,而且我知道最后我必须除以样本量减 1 (n-1) 并将该数字平方。我遇到的问题是如何取每个数字并计算它与平均值的距离,然后将该数字平方。我知道我可以分别处理数据集中的每个数字,但必须有更简单的方法。任何帮助将不胜感激,这是我的代码。

public class CalculateArray
{

    public static void main(String[] args)
    {
        int [] numbers = new int[]{1,2,3,4,5,6,7,8,9};

        int sum = 0;
        int max = 0;
        int min = numbers[0];
        double sd = 0;
    
        for(int i=0; i<numbers.length; i++)
        {
            sum = sum + numbers[i];
        }

        double average = sum / numbers.length;

        System.out.println("Average value is : " + average);

        for(int i=0; i<numbers.length; i++)
        {
            if(numbers[i] > max)
            {
                max = numbers[i];
            }
        }

        System.out.println("max number is : " + max);

        for(int i=0; i<numbers.length; i++)
        {
            if(numbers[i] < min)
            {
                min = numbers[i];
            }
        }

        System.out.println("min number is : " + min);

        for (int i=0; i<numbers.length;i++)
        {
           //this is where im having problems
           sd = ???
        }

        double standardDeviation = math.sqrt(sd/(numbers.length-1));

        System.out.println("The standard deviation is : " + standardDeviation);
    }
}

最佳答案

要计算一个数字与平均值的差距,您可以使用 - 运算符。要计算平方,您可以使用 Math.pow。因此,假设您已经在程序的前面计算了 average:

for (int i=0; i<numbers.length;i++)
{
    sd = sd + Math.pow(numbers[i] - average, 2);
}

顺便说一句,您目前计算平均值的方法已被破坏。您应该将 sum 定义为 double,而不是 int

关于java - 任何大小的数组java的标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839056/

相关文章:

java - 如何通过将私有(private)变量作为类成员函数中的参数传递来覆盖私有(private)变量?

java - 在 XML 中,您如何称呼这个 ://@Dohicky. 0 以及如何在 Java 中寻址它

java - JPA 实体是否应该为 hashcode() 实现返回一个常量?

c++ - 您如何判断图片中物体的(现实世界)距离?

java - 显式的serialVersionUID 被认为是有害的?

javascript - 从数组中获取第一个唯一元素

arrays - Lua单词搜索

无法访问C中二维数组的位置

arrays - 总和在 (1,2) 范围内的三元组

c# - Unity3d 中的 Matrix.RotateAt