2016-04-16 10 views
0

ユーザーが入力したデータセットの分散を計算しようとしています。しかし、私は私のプログラムを実行すると、私はエラーを取得しています:テストクラスのメソッドの分散は、特定の型に適用することはできません。 これは、これまでに私のコードです:データセットの分散を計算しようとすると、コンパイラエラーが発生する

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の平均を算出し、分散方法上記の方法を持っている、それは私が分散法で二重の平均値を初期化するにもかかわらず、とにかくに有用であろうか?

答えて

0
  1. だけ paramはそう

    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(); 
        } 
    
  2. のように、一つの引数を受け入れるようにvariance方法を調整与えますメソッド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(); 
    } 
    
+0

ありがとうございます@ダダニ –

+0

問題なし、幸せなコーディング... – Dadani

0

あなたvariance方法はパラメータを必要とするが、あなたはそれを呼び出すときに

+0

だから私は「二重の平均値」パラメータを取り除く必要がありますか?または、それを取り除いてコードに実装する必要がないように、それを使用する方法がありますか? –

+1

'mean'メソッドはどこに定義されていますか? – Dadani

+0

これは、平均法である: パブリック静的ダブル平均(ArrayListの番号){ \t \t \t \t二重和= 0。 \t \t for(int i = 0; i

関連する問題