繁体   English   中英

编码以找到方差java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM