我有一个双精度数组列表,我需要找到所有数字之间的平均值。
arraylist 中 Double 实例的数量不是恒定的,可能是 2,也可能是 90
我已经尝试了几个小时来自己获取算法,但无论如何都无法让它工作。
你有什么建议吗?或者也许你可以将我链接到现有的图书馆以获得这个平均值?
谢谢
创建一个sum
多变的:
double sum = 0;
使用 for 循环遍历列表中的元素:
for (double d : yourList)
在每次迭代中,添加到sum
当前值:
sum += d;
循环后,求平均值,除以sum
列表中的元素数量:
double avg = sum / yourList.size();
Here's 对于所有认为这太简单的人...
上面的解决方案其实并不完美。如果列表中的前几个元素非常大而最后几个元素很小,则sum += d
由于双打的精度,最终可能不会产生影响。
解决方案是在进行平均计算之前对列表进行排序:
Collections.sort(doublesList);
现在将首先添加小元素,这确保它们都尽可能准确地计数并有助于最终的总和:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)