0

好的,所以我设置了一个代码来获取具有多达 50 个元素的数组的平均值,我还想找到这些元素的标准偏差并将其显示在显示平均值的位置,到目前为止我的代码是

import java.util.Scanner;

public class caArray
{
public static void main(String args[])
{
    Scanner input = new Scanner(System.in);
    System.out.println("How many numbers you want to calculate average upto 50 : ");

    int n = input.nextInt();
    int[] array = new int[50];
    int sum = 0;


    for (int m = 0; m < n; m++)
    {
        System.out.print("Number " + m + " : ");
        array[m] = input.nextInt();
    }


    for (int m = 0; m < n; m++)
    {
        sum = array[m] + sum;
    }


    {
        System.out.println("Total value of Numbers = " + sum);
    }


    {
        double avg;
        avg = sum / array.length;
        System.out.println("Average of Numbers = " + avg);  //calculate average value
    }
}
}

我需要添加到这个以获得一个程序中的标准偏差

编辑**我不能使用这些功能,因为我实际上必须使用程序本身的标准偏差fourmula

4

2 回答 2

1

你可以用3种方法来写

private double standardDeviation(double[] input) {
    return Math.sqrt(variance(input));
}

private double variance(double[] input) {
    double expectedVal = expectedValue(input);
    double variance = 0;
    for(int i = 0;i<input.length;++i) {
        double buffer = input[i] - expectedVal;
        variance += buffer * buffer;
    }
    return variance;
}

private double expectedValue(double[] input) {
    double sum = 0;
    for(int i = 0;i<input.length;++i) {
        sum += input[i];
    }
    return sum/input.length;
}

希望它有效,如果我以正确的方式使用公式,我不太确定。

但基本上你的计算中有这 3 个数学公式

于 2012-12-12T15:41:55.657 回答
0

如果您不必自己编写,请查看Apache Commons Math统计文档参考了如何得出标准偏差

由于您必须自己编写,也许查看DescriptiveStatistics的源代码会很有启发性(查找函数getStandardDeviation()

于 2012-12-12T15:20:19.460 回答