プロが教えるわが家の防犯対策術!

Javaにて以下のようなプログラムを作成していますが、
「演算子 ^ は引数の型 double, int で未定義です。」とエラーになりました。
色々な方のご協力もあり、ここまで作れましたが、
これより先が行き詰っています。
教えていただけないでしょうか。


----------------------------------------------

// 分散を返すメソッド

public class Kadai16 {
public static void main(String args[]){
//double型の配列の生成
double[]a=new double[10];



argument(a);

//配列aの要素[0]から[9]の内容を表示

System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
System.out.println(a[3]);
System.out.println(a[4]);
System.out.println(a[5]);
System.out.println(a[6]);
System.out.println(a[7]);
System.out.println(a[8]);
System.out.println(a[9]);

//double total=sum(a)を実行する
double total =sum(a);
System.out.println("合計は"+total+"です。");

//使って平均を出す
double heikin;
mean(total);
heikin = mean(total);
System.out.println("平均は"+heikin+"です。");

//分散を返す
double bunsan;
bunsan = total-heikin^2/10;
System.out.println("分散は"+bunsan+"です。");

}
/**
* ランダムな数値を入れるメソッド
* @param a ランダムな数値を入れる配列
*/

private static void argument(double[]a) {
//引数の配列aの[0]から[9]までランダムな数値を設定する。
for(int i=0; i<a.length;i++) {
a[i]=Math.floor(Math.random()*10);
}
}

//配列を受け取って要素の合計を出すメソッド
public static double sum(double[] x) {
double t=0;
for(int i=0; i<x.length;i++) {
t= x[i]+t;
}
return t;
}

//配列を受け取って平均を出すメソッド
public static double mean(double b) {
return b/10;
}

//分散を返すメソッド
public static double bunsan(double c) {
double t=0;
double bnsan =0;
for(int i=0; i<c.length; i++) {
t =c[i]+t

}




}

}

A 回答 (2件)

bunsan = total-heikin^2/10;


の"heikin^2"は変数heikinを2乗する演算を意図しているのですよね?

Javaで累乗を計算する場合は、Math.pow()メソッドを使用します。
変数heikinを2乗したい場合は、"Math(heikin, 2)"のように記述します。

つまり、
bunsan = total-Math.pow(heikin,2)/10
と記述する必要があります。
    • good
    • 0

演算子「^」がどのようなものであるかを確認してください.


あなたの期待する演算ではないと思いますよ.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!