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算法,支持多维数组,距离用欧式距离