Java 试图计算一组数据的方差时出现编译器错误
我试图计算一组用户输入的数据的方差。然而,当我运行我的程序时,我得到了一个错误:类测试中的方法差异不能应用于给定的类型。 这是我目前的代码:Java 试图计算一组数据的方差时出现编译器错误,java,arrays,double,Java,Arrays,Double,我试图计算一组用户输入的数据的方差。然而,当我运行我的程序时,我得到了一个错误:类测试中的方法差异不能应用于给定的类型。 这是我目前的代码: public static double variance(ArrayList<Double> numbers, double mean) { double variance = 0; for (int i = 0; i <numbers.size(); i++) { variance = varianc
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);
}
}
public静态双方差(数组列表数,双均值){
双方差=0;
对于(int i=0;i您的variance
方法需要2参数,但当您调用它时,只需一个参数
调整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();
}
那么我应该去掉“double mean”参数吗?或者有没有一种方法可以使用它,这样我就不必去掉它并在我的代码中实现它?在哪里定义了mean
method?这是平均方法:公共静态双平均(ArrayList numbers){double sum=0;for(int I=0;Idouble mean
paramlist@ShahrokhAryana,见我的答案非常感谢@Dadani
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();
}