当前位置:  开发笔记 > 编程语言 > 正文

如何计算加权平均值?

如何解决《如何计算加权平均值?》经验,为你挑选了2个好方法。

我的语言是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],但考虑到我正在使用的数字,从第一种形式转换为第二种形式是非常低效的.

计算上述数字平均值的算法是什么?



1> Ray Hidayat..:

试试这个:

$total = 0;
$count = 0;
foreach($ratings as $number=>$frequency) {
  $total += $number * $frequency;
  $count += $frequency;
}
return $total / $count;


最后一行应该是`return $ count?($ total/$ count):0;`

2> Sasha..:

这不行吗?

$total = 0;
$sum = 0;
foreach ($ratings as $k => $v) {
  $total += $k * $v;
  $sum += $v;
}
echo $total / $sum;

编辑:嗯,我看起来很傻,因为有人打败了我.那好吧.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有