java - java 编码求方差

标签 java arrays overloading variance

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 ,然后对于任何其他数组从平均值中减去位置 i 处的数据( for 循环下的第一行)。然后对该值进行平方(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;
}

关于java - java 编码求方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883477/

相关文章:

java - Apache POI 和自动行高以及合并单元格

c++ - 如何在模板类的成员中使用重载的原始 exp

c++ - 存在重载 C++ 运算符的问题

java - Couchbase 在 Java 中批量检索多个 key

java - 如果 RxJava 中结果无效,如何发送 onError

java - 如何知道图像每个像素是32位、24位、8位、1位

java - 我的方法有什么问题?

javascript - 如何控制台数组中大写的日志元素

c++ - 当大小相同时使用派生对象数组作为基础对象数组 (CComVariant/VARIANT)

objective-c - 如何从 Objective-C 调用使用 class_getInstanceMethod 保存的方法?