标准差的计算方式:为了得到无偏估计需要在求得的sum之后除以N-1而不是N。
背包的使用:foreach语句使用某种排序方式历遍(具体哪种不需要知道)
控制台手动停止循环:ctrl+D
代码:
public class Stats {
public static void
main(String [] args){
Bag<Double> numbers = new Bag<>();
while (!StdIn.isEmpty()){
numbers.add(StdIn.readDouble());
}
int N = numbers.size();//这个是获得的总数
double sum =
0.0;
for (double x : numbers){
sum += x;
}
double mean = sum / N;
sum = 0.0;//为了省一个变量,再次使用方便
for (double x : numbers){
sum += (x - mean) * (x - mean);
}
double std = Math.sqrt(sum/(N -
1));
StdOut.printf("Mean: %.2f\n", mean);
StdOut.printf("Std dev: %.2f\n",std);
}
}