0

我知道这就是您为数据数组计算模式的方式。

public double mode() {
    int maxValue=0, maxCount=0;
    for (int i = 0; i < a.length; i++) {
        int count = 0;
        for (int j = 0; j < a.length; j++) {
            if (a[j] == a[i])
                ++count;
            }
        }
        if (count > maxCount) {
            maxCount = count;
            maxValue = a[i];
        }
    }
return maxValue; }

当有多个值可以是模式时,我遇到了问题。所以如果有多个值是模式,我想输出(返回 Double.NaN;)。我怎么做?

4

1 回答 1

0

添加计数相等的条件:

if (count > maxCount) {
  maxCount = count;
  maxValue = a[i];
} else if (count == maxCount && maxValue != a[i]) {
  maxValue = Double.NaN;
}

演示(在 Javascript 中):http: //jsfiddle.net/Guffa/xWvAV/

于 2013-10-27T22:40:14.430 回答