Java多维数组平均

Posted

技术标签:

【中文标题】Java多维数组平均【英文标题】:Java Multi-dimensional Array Average 【发布时间】:2015-11-23 23:56:56 【问题描述】:

基本上我有一个数组,其中包含 1907-2007 年的降雨数据(例如 - 长度 100)。 数组的每个元素都包含另一个数组,其中包含该年每个月的降雨量数据。

我的问题是,我将如何计算用户指定年份的平均降雨量? 这是我目前所拥有的:

public double calculateAverageForYear(int year)

double sum = 0.0;

for (int i=0;i<Years.length;i++) 
sum = sum += Years[i].calculateAvgRain();

sum = sum/12;
return sum;

calculateAvgRain 在另一个类中定义,就我的测试而言是正确的。 感谢您的帮助

【问题讨论】:

Years[i].calculateAvgRain() 的签名是什么,它接受求平均值的东西,还是Year 类的方法? 这段代码不起作用吗?如果不是,请描述问题。 @SamTebbs33 预期答案与我的实际答案相差 10 个单位。 @Anly 是另一个类的方法,用来计算平均降雨量 @AcidMicrowave 很清楚。令我困扰的是,您在问一个问题,而相同的方法应该完全按照您的意愿行事。既然你在问,我认为它没有。那是什么? 【参考方案1】:

我假设用户定义的参数int year 不是years 数组的实际索引。如果它是实际年份数,则必须根据数组中的第一年对其进行转换。它应该像 int index = year - 1907 一样简单,假设 1907 年是索引为 0 的元素。

如果您使用Years[i].calculateAvgRain() 的方法有效,那么您可能只需要调整i(如上所述)。那你就不需要循环了。

既然您在问一个问题,那么问题可能是其他问题。 我假设您有 100x12 数组,其中行为年,列中为月雨数据。

public double calculateAverage(int year) 
    int index = year - 1907; //extract 1907 into a CONSTANT or some other variable if possible

    double sum = 0.0;
    for (double monthRain : years[index])  //is `years` visible?
        sum += monthRain;
    

    return sum / years[index].length; //`years[index].length` should be 12, but maybe you have a blank month data?

请纠正我并更详细地澄清问题。

【讨论】:

以上是关于Java多维数组平均的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基于组平均的AGNES算法,支持多维数组,距离用欧式距离

机器学习基于组平均的AGNES算法,支持多维数组,距离用欧式距离

Java浅谈数组之多维数组

Java多维数组使用注意事项

java多维数组

Java中如何获取多维数组的长度