我用10个随机数做标准差。我得找出这10个数字的平均值。然后,我减去平均值并将其平方。然后,我必须再次找到平均值,并找到平均值的平方根。例如:
2,4,4,4,5,5,7,9
这八位数字的平均(平均数)为5:
(2 +4+4+4+5+5+7+ 9) /8=5
首先,从均方和均方计算每个元素的差值,结果如下:
(2-5 )2 =9
(4-5 )2 =1
(4-5 )2 =1
(4-5 )2 =1
(5-5 )2 =0
(5-5 )2 =0
(7-5 )2 =4
(9-5 )2 = 16
接下来,计算这些值的平均值,然后取平方根:
Math.sqrt ( 9 +1+1+1+0+0+4+ 16) =2
因此,与数组2,4,4,4,5,5,7,9的标准差是2。
我一直遇到的问题是,我想不出第二次怎么再加这些数字。它将原来的10个随机数相加。
public class StandardDeviation {
public static void main(String[] args) {
//Create array
int [] array = new int [10];
//Generate 10 random numbers
for (int i = 0; i < array.length; i++) {
array [i] = (int)(Math.random() * 100);
System.out.println(array[i]);
}
//Add 10 numbers together
int sum = 0;
for (int i : array) {
sum += i;
}
//Find Average
int average = sum/10;
System.out.println("Average: " + average);
//create New Array
int [] variance = new int [array.length];
for (int i = 0; i < variance.length; i++) {
variance[i] = array[i];
}
//Subtract Average and Square it
int sum2 = 0;
for (int i: variance) {
i -= average;
i *= i;
System.out.println(i);
}
System.out.println("Sum: " + addNumbers(variance));
}
public static int addNumbers (int [] variance) {
int total = 0;
for (int i = 0; i < variance.length; i++) {
total += variance[i];
}
return total;
}
}
发布于 2015-03-15 22:25:46
对循环的“//减法平均值和平方”尝试如下:
for (int i = 0; i < variance.length; ++i) {
variance[i] -= average;
variance[i] *= variance[i];
System.out.println(variance[i]);
}
当前不更新存储在数组中的值。
https://stackoverflow.com/questions/29066872
复制相似问题