Простая алгебра:
AvgVotes = Сумма всех голосов / Сумма всех элементов
AvgRating = Сумма голосов за все элементы * 5 / Сумма всех голосов
CurVotes = Количество голосов по текущему элементу
CurRating = Сумма голосов по текущему элементу * 5 / Количество голосов по текущему элементу
TotalVotes = Сумма всех голосов + Сумма голосов потекущий элемент
((AvgVotes * AvgRating) + (CurVotes * CurRating)) * 5 / TotalVotes
Поэтому добавьте свои числа, оценивая вес для A ...
AvgVotes = 1000
AvgRating = 0 (Помните, не включайте числа для элемента, который вы оцениваете в этом расчете)
CurVotes = 1000
CurRating = 500 * 5/1000= 2,5
Всего голосов = 2000 + 1000 = 3000
((1000 * 0) + (1000 * 2,5)) * 5/3000 = 4,166
Я забылдобавьте, НЕ включайте какие-либо элементы в какие-либо вычисления или суммы выше, которые не имеют голосов, или это сбросит вес.
EDIT - Упрощенное решение:
Следует отметить, что существует упрощенное решение проблемы, которое можно выполнить.Я только продемонстрировал от руки форму для понимания.Сжатый алгоритм выглядит следующим образом:
Определения:
SET = Все, что не связано с текущей целью оценки, где число голосов больше нуля.
TARGET = Элемент, которым вы в данный момент являетесьпытается оценить
25 * (((Сумма положительных голосов SET) / (Сумма положительных голосов SET)) + (Сумма положительных голосов TARGET)) / (Сумма голосов TARGET + Сумма голосов SET)
Снова подключите свои номера, оценивая «А» для уточнения и доказательства:
(25 * ((0/2) +500)) / (1000 + 2000) = 4,166