こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaでのプログラミング

javaで平均と分散を求めるプログラムを作っているのですが、
分散の出力がうまくいきません。(出力が0になってしまいます)

プログラミングとしておかしいところがあれば、教えていただけませんでしょうか

以下プログラムソースです。

public class test{
public static void main(String[] args){

int i,rand;
double ave=0
double bun=0
double sum1=0
double sum2=0;
int [] data = new int[10];
rand=(int)(Math.random()*100+0.5);

for(i=0;i<10;i++){
data[i]=rand;
}

for(i=0;i<10;i++){
sum1+=data[i];
sum2+=data[i]*data[i];
}

ave=sum1/10;
bun=(sum2/10) - (ave*ave);


System.out.println(ave);
System.out.println(bun);


}
}

投稿日時 - 2013-04-30 19:46:00

QNo.8066934

すぐに回答ほしいです

質問者が選んだベストアンサー

>for(i=0;i<10;i++){
> data[i]=rand;
>}
のあとで
for(i=0;i<10;i++){
System.out.println("data[" + i + "] = " + data[i] );
}
とでもして、data[i]の内容を確認してみてください。
なにか気付きませんか?

このプログラムだと、分散が0になるのは、正しい計算結果です。
分散が0になるようなデータを10個用意してますから

投稿日時 - 2013-04-30 20:18:55

お礼

randは定数なので、randのランダム関数代入の定義ごとループにいれないとだめですね。
初歩でした、ありがとうございます!

投稿日時 - 2013-05-01 08:30:35

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問