Java中如何计算一个数组的标准占卜?如您所见,我已经计算了均值,而且我知道最后我必须除以样本量减 1 (n-1) 并将该数字平方。我遇到的问题是如何取每个数字并计算它与平均值的距离,然后将该数字平方。我知道我可以分别处理数据集中的每个数字,但必须有更简单的方法。任何帮助将不胜感激,这是我的代码。
public class CalculateArray
{
public static void main(String[] args)
{
int [] numbers = new int[]{1,2,3,4,5,6,7,8,9};
int sum = 0;
int max = 0;
int min = numbers[0];
double sd = 0;
for(int i=0; i<numbers.length; i++)
{
sum = sum + numbers[i];
}
double average = sum / numbers.length;
System.out.println("Average value is : " + average);
for(int i=0; i<numbers.length; i++)
{
if(numbers[i] > max)
{
max = numbers[i];
}
}
System.out.println("max number is : " + max);
for(int i=0; i<numbers.length; i++)
{
if(numbers[i] < min)
{
min = numbers[i];
}
}
System.out.println("min number is : " + min);
for (int i=0; i<numbers.length;i++)
{
//this is where im having problems
sd = ???
}
double standardDeviation = math.sqrt(sd/(numbers.length-1));
System.out.println("The standard deviation is : " + standardDeviation);
}
}
最佳答案
要计算一个数字与平均值的差距,您可以使用 -
运算符。要计算平方,您可以使用 Math.pow
。因此,假设您已经在程序的前面计算了 average
:
for (int i=0; i<numbers.length;i++)
{
sd = sd + Math.pow(numbers[i] - average, 2);
}
顺便说一句,您目前计算平均值的方法已被破坏。您应该将 sum
定义为 double,而不是 int
。
关于java - 任何大小的数组java的标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839056/