尝试计算一组数据的方差时编译器错误

时间:2016-04-16 06:01:20

标签: java arrays double

我试图计算用户输入的数据集的方差。但是,当我运行我的程序时,我得到错误:类Test中的方法差异不能应用于给定的类型。 到目前为止,这是我的代码:

public static double variance(ArrayList<Double> numbers, double mean) {

    double variance = 0;
    for (int i = 0; i <numbers.size(); i++) {
        variance = variance + Math.pow((numbers.get(i) - mean(numbers)), 2);
    }
    return variance/numbers.size();
}
public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter data set: ");
    ArrayList<Double> nums = new ArrayList<Double>();

    while (keyboard.hasNextDouble()) {
        nums.add(keyboard.nextDouble());
    }
    double numbs = mean(nums);
    System.out.println("Mean = " + numbs);
    double numbs2 = variance(nums);
    System.out.println("Variance = " + numbs2);
  }
}

我有一个Variance方法之上的方法来计算ArrayList的平均值,尽管我在方差方法中初始化了一个双重均值,但它仍然有用吗?

2 个答案:

答案 0 :(得分:0)

您的variance方法需要 2 参数,但当您调用它时,只需一个参数

答案 1 :(得分:0)

  1. 调整before_filter方法以接受一个参数,如此

    variance
  2. 定义类似于此的方法 public static double variance(ArrayList<Double> numbers) { double variance = 0; for (int i = 0; i <numbers.size(); i++) { variance = variance + Math.pow((numbers.get(i) - mean(numbers)), 2); } return variance/numbers.size(); } ,其余的应该没问题。

    mean