클래스에 대한이 과제를 수행 중이며 내가 잘못 가고있는 부분을 볼 수 있습니다. 교수님의 예와 같은 의견을 입력했지만 출력이 다릅니다. 입력이 1,2,3,4,5,5,6,6,7,8,9,10 인 경우 평균은 5.61이고 표준 편차는 2.99794373974304입니다. 그러나 나는 평균 5.61을 얻고 있지만 표준 편차는 2.9963144027287916입니다. 내가 어디로 잘못 가고 있는지 확실하지 않습니다. 어떤 아이디어? 나를 위해 이것을 할 사람을 찾고 있지 않습니다. 나는 내가 어디로 잘못 가고 있는지 알 필요가있다.평균 및 표준 편차
public static void main(String[] args) {
//
Scanner input = new Scanner(System.in);
//User Input 1-10
System.out.print("Enter a number: ");
double inputA = input.nextDouble();
System.out.print("Enter a number: ");
double inputB = input.nextDouble();
System.out.print("Enter a number: ");
double inputC = input.nextDouble();
System.out.print("Enter a number: ");
double inputD = input.nextDouble();
System.out.print("Enter a number: ");
double inputE = input.nextDouble();
System.out.print("Enter a number: ");
double inputF = input.nextDouble();
System.out.print("Enter a number: ");
double inputG = input.nextDouble();
System.out.print("Enter a number: ");
double inputH = input.nextDouble();
System.out.print("Enter a number: ");
double inputI = input.nextDouble();
System.out.print("Enter a number: ");
double inputJ = input.nextDouble();
//Formula for Mean
double mean = (inputA + inputB + inputC + inputD + inputE + inputF + inputG + inputH + inputI + inputJ)/10;
//Formula for standard deviation
//Subtract each input by the mean
double m1 = (inputA - mean);
double m2 = (inputB - mean);
double m3 = (inputC - mean);
double m4 = (inputD - mean);
double m5 = (inputE - mean);
double m6 = (inputF - mean);
double m7 = (inputG - mean);
double m8 = (inputH - mean);
double m9 = (inputI - mean);
double m10 = (inputJ - mean);
//Square each m variable
double v1 = (Math.pow(m1, 2));
double v2 = (Math.pow(m2, 2));
double v3 = (Math.pow(m3, 2));
double v4 = (Math.pow(m4, 2));
double v5 = (Math.pow(m5, 2));
double v6 = (Math.pow(m6, 2));
double v7 = (Math.pow(m7, 2));
double v8 = (Math.pow(m8, 2));
double v9 = (Math.pow(m9, 2));
double v10 = (Math.pow(m10, 2));
//Add all the sums squared sums together
double var = (v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10);
//divide by the number of variables to get Variance
double var1 = (var/10);
double var2 = (var % 10);
double var3 = (var1 + var2);
//Standard deviation is the square root of the Variance
double dev = (Math.sqrt(var3));
//Mean and Deviation print
System.out.println("The mean is " + mean);
System.out.println("the deviation is: " + dev);
}
제 코드를 수정했습니다. 그러나 나는 아직도 벗어났다. 누구든지 좀 더 정확한 대답을 얻을 수있게 도와 줄 수 있습니까? 아직도 우물쭈물 한 im! 이 이중 VAR = (-mean (인덱스 + 1)) 내에서 의미 말한다 곳
public static void main(String[] args) {
double[] arrayM = new double[10];
double[] arrayV = new double[10];
double sum = 0;
for (int index = 0; index < arrayM.length ; index ++) {
System.out.print("Enter a number: ");
Scanner input = new Scanner(System.in);
double in = input.nextDouble();
arrayM[index] = in;
sum += in;
}
//final mean and variant
double mean = sum/arrayM.length;
double vari = 0;
for (int index = 0; index < arrayM.length ; index ++) {
double var=((index+1)-mean)^2;
arrayV[index] = var;
vari += var;
}
double variant = vari/arrayM.length;
//final deviation
double devi= Math.sqrt(variant);
System.out.print("The mean is: "+mean);
System.out.print("The standard deviation is: "+devi);
}
}
그렇게^2이 작동하지 않습니다. 어떻게 쓸 수 있습니까? mean
최종 편집 : 알아 냈습니다. 여기에 최종 코드가 있습니다.
public class TESTPROJECT {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//Arrays
Scanner input = new Scanner(System.in);
double[] arrayM = new double[10];
double[] arrayV = new double[10];
//Sum
double sum = 0;
//Sum array
for (int index = 0; index < arrayM.length ; index ++) {
System.out.print("Enter a number: ");
double in = input.nextDouble();
arrayM[index] = (in);
sum += in;
}
//Mean
double mean = sum/arrayM.length;
for (int index = 0; index < arrayM.length ; index ++) {
double var = arrayM[index] - mean;
arrayV[index] = var;
}
//Variant Loop
double sqre = 0;
for(int index = 0; index < arrayV.length; index++) {
double sqr = Math.pow(arrayV[index],2);
sqre += sqr;
}
//Deviation cal
double variant = sqre/arrayM.length;
//final deviation
double devi= Math.sqrt(variant);
//ouput
System.out.println("The mean is: "+mean);
System.out.println("The standard deviation is: "+devi);
}
}
루프에 대해 들어 봤어? –
Math.pow (x, 2)를 사용하지 마십시오. 대신 x * x를 사용하십시오 – FredK
실제로 분산의 정의를 알고 있습니까? – FredK