使用整数

时间:2016-11-05 19:33:55

标签: arrays double text-files bufferedreader standard-deviation

我有一个文件,其中包含需要存储在数组中的数字列表。如何计算阵列的总体标准偏差? Main类不需要更改。

主要

import java.io.BufferedReader;
import java.io.FileReader; 

public class Main {
private static int NUMBERS=20;

public static void main(String[] args) {
    double[] myNumbers =  new double[NUMBERS];
    Calculations calculations = new Calculations();
    try {
        calculations.readFile("numbers.txt", myNumbers);
        double stdDev = calculations.computeStandardDeviation(myNumbers);
        System.out.println("Population Std Dev = " + stdDev);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

CALCULATIONS

import java.io.BufferedReader;
import java.io.FileReader;

public class Calculations {
// Read integers from text file, use myArray.length as the number to read 
// Read numbers as text and convert to doubles.
public void readFile(String fileName, double[] myArray) throws Exception {
    FileReader fr = null;
    BufferedReader br;

}
public double computeStandardDeviation(double[] myArray) {
    double result = 0;

    return result;
}
}

LIST

9 2 五 4 12 7 8 11 9 3 7 4 12 五 4 10 9 6 9 4

1 个答案:

答案 0 :(得分:1)

我猜你的问题是“如何计算人口的标准偏差?”。

标准偏差(简称sd)的计算相对简单。

要理解sd的含义超出了本答案的范围,我将直截了当地说明。 sd是“平均值与平均值的平均值的平方根”。

分解步骤(编程是什么):

1st:计算平均值。

第二:现在,对于数组中的每个值,您需要计算它与平均值的平方差。

第3步:添加以上所有值(称之为s)。

第4步:通过潜水数量找出平均差值(方差),以及数量。

第五:最后,根据你的最后一个数字来计算。

可以找到一个例子here

编辑:

如果你想要一个示例代码,这里是(在Java中):

public class Calculations {

public double computeMean( double[] array ){

    double sum = 0;

    for (double d : array){

        sum += d;
    }

    return sum / array.length;
}

public double computeStandardDeviation(double[] array) {

    double mean = computeMean(array);

    double sumOfSqDiff = 0;

    for (double d : array){

        sumOfSqDiff += Math.pow((d - mean), 2);
    }

    return Math.sqrt(sumOfSqDiff / array.length);
}