2016-09-11 3 views
0

평균 계산에 문제가 없지만 표준 편차는 조금씩 계속 나오고 있습니다. 나는 혼란 스럽다. 표준 편차의 경우 for 루프를 사용하여 사용자 프롬프트 값으로 채워진 배열을 돌아가며 각 값에서 평균을 뺀 다음이를 제곱합니다. 그런 다음 하나의 루프를 사용하여 모두 합쳐서 값의 수로 나눈 다음이를 제곱합니다. 나는 무엇이 잘못되고 있는가?자바에서 평균 및 표준 편차를 계산하십시오.

import java.util.Scanner; 

public class Assignment4 
{ 
    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 


     System.out.println("Please enter the number of items:"); // PROMPTS USER FOR # OF ITEMS 
     double size = scan.nextDouble(); 

     double meanSum = 0; 
     double deviationSum = 0; 
     double array[] = new double [(int) size]; 


     System.out.println("Please enter the items"); 
     for (int i = 0; i < size; i++) 
      { 
       array[i]= scan.nextDouble(); 
      } 


     for (int i = 0; i < size; i++) 
      { 
       meanSum += array[i]; 
      } 

     double mean = ((meanSum/size)); 
     System.out.println("The mean is: " + mean); 




     //STANDARD DEVIATION CALCULATION 
     for (int i = 0; i < size; i++) 
      { 
       array[i] = (Math.pow((array[i] - mean), 2)); 
      } 
     for (int i = 0; i < size; i++) 
     { 
      deviationSum += array[i]; 
     } 

     double variance = ((deviationSum/size)); 

     double standardDeviation = Math.sqrt(variance); 
     System.out.println("The standard deviation is: " + standardDeviation); 

    } 

} 
+2

'무엇이 잘못 되었습니까?'당신은 무엇을 비교하고 있습니까? 그것은 [Bessel 's Corresction] (https://en.wikipedia.org/wiki/Bessel%27s_correction), 즉'n-1'을 사용합니까? http://stats.stackexchange.com/questions/17890/what-is-the-difference-between-n-and-n-1-in-calculating-population-variance 및 http://stats.stackexchange.com을 참조하십시오./질문/3931/직관적 설명 - 나누기 별 n-1 계산시 표준 편차 – copeg

+0

아! n-1로 나눈 값으로 고정. 정말 고마워! –

답변

1

를 반환하는 함수를 호출 할 수있는 당신은 당신의 대답을 비교하고 있습니다, 그것은 Bessel's correction과 같은 교정을 사용할 것입니다. 즉, size으로 나누기보다는 size-1으로 나눕니다. 또한 thisthis

관련 문제