【问题标题】:Find standard deviation from text file with integers从带有整数的文本文件中查找标准偏差
【发布时间】:2017-03-19 10:49:31
【问题描述】:

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

计算

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;
}
}

列表

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

【问题讨论】:

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


    【解决方案1】:

    我猜你的问题是“如何计算总体的标准差?”。

    标准差(简称sd)的计算比较简单。

    要理解 sd 的含义超出了这个答案的范围,所以我会直奔主题。 sd 是“与平均值的平方差的平均值的平方根”。

    分步分解(编程的全部内容):

    第一个:计算平均值。

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

    3rd:将以上所有值相加(称其为 s)。

    第 4 次:通过将 s 除以数字的数量来找到平均平方差(Variance)。

    5th:最后,将你得到的最后一个数字平方根。

    一个例子可以在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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2015-04-07
      • 2021-10-16
      • 1970-01-01
      • 2015-06-27
      • 2018-09-04
      • 2017-07-11
      相关资源
      最近更新 更多