我有一个文件,其中包含需要存储在数组中的数字列表。如何计算阵列的总体标准偏差? 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
答案 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);
}