2016-04-11 12 views
0

Bu programdaki standart sapma 0 olarak çıkıyor ve ne yaptığımı bilmiyorum. Bunu saatlerce bekledim, lütfen yardım edin. İşteStandart Sapma 0 olarak çıktılanıyor, nasıl düzeltilir?

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

    System.out.println("How many numbers do you want to calculate?"); 
    int n = scan.nextInt(); 

    double a[] = new double[(int) n];  // casting n to a double 
    double sum = 0.0; 
    double sd = 0.0; 

    System.out.println("Fill in the values for all " + n + " numbers."); 
    for(int i = 0; i < a.length; i++) 
    { 
     a[i] = scan.nextDouble(); 
     sum = sum + a[i]; 
    } 

    double average = sum/a.length; 

    for(int i = 0; i < a.length; i++) 
    { 
      a[i] = Math.pow((a[i]-average),2);  // need help here 
    } 


    System.out.println("The Mean of the " + n +" numbers is " + average); 
    System.out.println("The Standard Deviation of the " + n + " numbers is " + sd); 
} 

cevap

1

Ayrıca şimdi işe ve size doğru sonucu vermelidir sizin kodunu değiştirmiş bir fiddle

olduğunu.

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

    System.out.println("How many numbers do you want to calculate?"); 
    int n = scan.nextInt(); 

    double a[] = new double[(int) n];  // casting n to a double 
    double sum = 0.0; 
    double sqrSum = 0.0; 
    double sd = 0.0; 

    System.out.println("Fill in the values for all " + n + " numbers."); 
    for(int i = 0; i < a.length; i++) 
    { 
     a[i] = scan.nextDouble(); 
     sum = sum + a[i]; 
    } 

    double average = sum/a.length; 

    //Perform the Sum of (value-avg)^2 
    for(int i = 0 ; i < a.length ; i++) 
    { 
     sqrSum = sqrSum + Math.pow(a[i] - average, 2); 
    } 
    sd = Math.sqrt(sqrSum/(a.length - 1)); 


    System.out.println("The Mean of the " + n +" numbers is " + average); 
    System.out.println("The Standard Deviation of the " + n + " numbers is " + sd); 
} 
+0

LINQ'un ne olduğunu bile bilmiyorum. Ben sadece standart sapmamın neden çıkış yaptığını anlamaya çalışıyorum ....... –

+0

@RyanHorner Cevabımı değiştirdim. LINQ hakkında bilmediğiniz için LINQ parçalarını çıkardım ve sizin için eksik mantığı ekledim. –

+0

Güncelleme için teşekkürler! Ama hala yanlış sonuçlar alıyorum. 100, 200 ve 300 girdim ve bu 3 sayıdaki standart sapmanın 81.64965809277261 –

İlgili konular