Я реализовал простую систему голосования вверх/вниз на веб-сайте, и я отслеживаю отдельные голоса, а также время голосования и уникальный идентификатор пользователя (хэш. IP ).
Мой вопрос не в том, как рассчитать процент или сумму голосов -, а в том, каков хороший алгоритм для определения хорошей оценки на основе голосов?
Я считаю недопустимой сортировку по чистому проценту голосов, как и простой подсчет голосов.
Рассмотрим этот пример:
Идеал система поставит сначала A, за ним, возможно, B, а затем C.
В чисто процентном сценарии порядок C > A > B. (неправильно )В сценарии чистого подсчета голосов порядок B > A > C.(неправильно)
У меня есть идея относительно "гибридного" алгоритма, основанного на уверенности системы в счете, возможно, что-то вроде:
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1 / totalvotes+1) * sqrt(1 / totalvotes))
Тем не менее, я надеялся узнать у сообщества, существуют ли какие-либо действительно хорошо -определил уже существующие алгоритмы, о которых я просто не знаю, прежде чем я сяду и настрою свой алгоритм с этого момента до заката.
У меня также есть данные о дате каждого голосования -, однако содержание сайта не очень чувствительно ко времени -, поэтому я вообще не забочусь о сортировке по «самым популярным».