2016-10-08 67 views
0

idk如果我必须在循环中或循环外获得标准,也可以帮助我理解为什么它是在循环内或循环外进行,以及它们有什么区别。我也知道在这种情况下,标准偏差公式就像(输入 - 平均值)^ 2,然后再加上所有的值并除以平方根即可。我只是不完全知道如何写,并把它放在哪里如何获得标准差

import java.util.Scanner; 

public class readFromKeyboard { 

    public static void main(String[] args) { 


     Scanner input = new Scanner(System.in); 

     String inStr = input.next(); 
     int n; 
     int count=0; 
     int min = Integer.MAX_VALUE; 
     int max = Integer.MIN_VALUE; 
     double average=0; 
     int sum; 
     double deviation = 0; 

     while (!inStr.equals("EOL")) { 
      count++; 
      n = Integer.parseInt(inStr); 
      min = Math.min(min, n); 
      max = Math.max(max, n); 
      System.out.printf("%d ", n); 
      inStr = input.next(); 
      average += n; 
     } 

     average = average/count; 

     System.out.println("\n The average of these numbers is " + average); 
     System.out.printf("The list has %d numbers\n", count); 
     System.out.printf("The minimum of the list is %d\n", min); 
     System.out.printf("The maximum of the list is %d\n", max); 


     input.close(); 


    } 
} 
+0

您可以添加第二个循环来计算根据你的平均标准偏差。 – drum

+0

我应该写一个循环,将每个数字除以平均值,然后在数字输入时对其进行平方,然后将它们按数字相加,然后平方根呢? –

+0

我没跟着。首先让我们确保我们谈论的是“标准偏差”,而不是“总体标准偏差”或“方差”。 – drum

回答

1

既然你已经计算average,现在你可以计算standard deviation每个号码。

  1. 创建阵列sd[]来存储standard deviation
  2. 对于每个编号,sd[i] = (average - input_i)^2

计算variance

  1. 对于每个standard deviationsd[],通过输入总数添加到可变temp
  2. 鸿沟temp

计算population standard deviation

  1. 平方根variance