我的语言是 PHP,但算法应该是相当通用的。
我有一个(比方说)评分和评分次数的关联数组。
$ratings = array(
1 => 1,
2 => 3,
3 => 6,
4 => 3,
5 => 3
);
这相当于:
[1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5]
,但考虑到我正在处理的数字,从第一种形式转换为第二种形式会非常低效。计算上述数字的平均值的算法是什么?
最佳答案
试试这个:
$total = 0;
$count = 0;
foreach($ratings as $number=>$frequency) {
$total += $number * $frequency;
$count += $frequency;
}
return $total / $count;
关于php - 如何计算加权平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/490365/