Мой язык - 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]
, но, учитывая числа, с которыми я работаю, было бы весьма неэффективно конвертировать из первой формы во вторую.
Каким будет алгоритм для вычисления среднего из приведенных выше чисел?