gpt4 book ai didi

java - 如何获得二维数组的平均值

转载 作者:行者123 更新时间:2023-12-02 09:27:24 25 4
gpt4 key购买 nike

我有一个当前的方法,应该显示 2D 的平均值,但它输出的数字没有意义例如; 1.0,2.0,3.0,4.0,5.0,6.0 的平均值为 3.5,但我的程序输出上述数字的平均值为 10.5。

下面是我的方法

public static double getAverage(double[][] array1) {
double total = 0; //Accumulator
int num = 0;

for(int row = 0; row < array1.length; row++)
{
for(int col =0; col < array1[row].length; col++)
total += array1 [row][col];
num += 1;
}
return total / num;
}

最佳答案

一个简单的版本是

public static double getAverage(double[][] a) {
return Arrays.stream(a)
.flatMapToDouble(Arrays::stream)
.average()
.orElseThrow(() -> new IllegalArgumentException("no elements in the array"));
}

您的错误是在 row 循环中增加 num,而您应该在 col 循环内执行此操作。

一个有趣的版本是

for (int row = 0; row < array1.length; row++)
for (int col = 0; col < array1[row].length; total += array1[row][col++], num++);

关于java - 如何获得二维数组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58241033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com