[英]coding to find variance java
public double variance() {
if (data.length == 0) {
return Double.NaN;
} else {
for (int i = 0; i < data.length; i++) {
double temp = average() - data[i];
Math.pow(temp, 2);
return temp / data.length;
}
}
}
这是我的程序Stat中的代码片段。 我在eclipse上编码,它不仅告诉我添加return语句,而且for循环中的i ++是“死代码”(这是我第一次遇到该术语)。 基本上我想做的是为一个空数组返回Double.NaN,然后对于其他任何数组,从平均值(for循环下的第一行)中减去位置i处的数据。 然后将该值平方(for循环下的第二行)。 由于方差是所有这些“ temp”值的平均值,因此下面的return语句返回temp / data.length。 如果有人可以给我一些提示或指出正确的方向,那我就可以告诉我我做错了。
您需要将return移出循环语句。
public double variance() {
if (data.length == 0) {
return Double.NaN;
}
double variance = 0;
for (int i = 0; i < data.length; i++) {
double temp = average() - data[i];
variance += Math.pow(temp, 2);
}
return variance/data.length;
}
这是一个无效代码,因为如果您输入for循环,则每次都会在第一次迭代时返回一个值,因此i++
语句是无用的,因为它将永远不会执行。
然后您应该看起来像这样:
double temp = 0;
for (int i = 0; i < data.length; i++) {
temp += average() - data[i];
temp = Math.pow(temp, 2); //Math.pow returns a double so you have to assign it to temp
}
return temp/data.length;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.