Stats背包(1.3 P77)

来源:互联网 发布:复杂网络的研究现状 编辑:程序博客网 时间:2024/06/10 18:14
标准差的计算方式:为了得到无偏估计需要在求得的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);


}
}