尝试计算一组数据的方差时出现编译器错误
Compiler error when trying to calculate Variance of a set of data
我正在尝试计算用户输入的一组数据的方差。但是,当我 运行 我的程序时,我收到错误消息:class 测试中的方法差异无法应用于给定类型。
到目前为止,这是我的代码:
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);
}
}
我在方差方法之上有一个计算 ArrayList 均值的方法,尽管我在方差方法中初始化了双均值,但它无论如何都有用吗?
你的 variance
方法需要 2 参数但是当你调用它时你只需要 one param
调整您的 variance
方法以接受一个参数,就像这样
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
类似这样,其他的应该没问题
public static double mean(ArrayList<Double> numbers) {
double sum = 0;
for (int i = 0; i < numbers.size(); i++) {
sum += numbers.get(i);
}
return sum / numbers.size();
}
我正在尝试计算用户输入的一组数据的方差。但是,当我 运行 我的程序时,我收到错误消息:class 测试中的方法差异无法应用于给定类型。 到目前为止,这是我的代码:
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);
}
}
我在方差方法之上有一个计算 ArrayList 均值的方法,尽管我在方差方法中初始化了双均值,但它无论如何都有用吗?
你的 variance
方法需要 2 参数但是当你调用它时你只需要 one param
调整您的
variance
方法以接受一个参数,就像这样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
类似这样,其他的应该没问题public static double mean(ArrayList<Double> numbers) { double sum = 0; for (int i = 0; i < numbers.size(); i++) { sum += numbers.get(i); } return sum / numbers.size(); }