Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Система рейтинга для сайта |
Автор: Vasay 19.6.2010, 01:14 |
Доброго времени! Вообщем есть задача - придумать продвинутый алгоритм рейтинга юзеров сайта. Ситуация такая - есть сайт, где юзеры могут писать статьи и комментарии к ним. Хотелось бы, что бы юзеры могли оценивать статьи и комментарии. При этом вес оценки зависел бы от текущего рейтинга пользователя. А текущий рейтинг пользователя вычислялся бы по рейтингу статей и комментариев юзера на сайте. Посоветуйте алгоритм. Изобретать велосипед не хочется. |
Автор: APXEOLOG 23.6.2010, 18:33 |
Оценка по 5тибальной шкале? Или просто некие абстрактные баллы? Я о таких не слышал так что придется изобретать ![]() |
Автор: Vasay 23.6.2010, 21:48 | ||
Даже не знаю как лучше. интересно, как на Хабре сделано? |
Автор: APXEOLOG 24.6.2010, 09:19 |
На хабре ни разу не был =) В принципе все что нужно - это составить формулу вида n * m для оценки, m - оценка (допустим по 100бальной шкале) где n - рейтинг вашего пользователя (в процентах) т.е. если рейтинг = 100 то полный вес оценки, если меньше/больше то соответственно штраф/бонус. Текущий рейтинг соответственно преобразовывать в n - тут нужно уже смотреть по ситуации, смотря с какими числами вы хотите работать. Естественно не обязательно выводить пользователю информацию о процентах, те же 100% можно представить на вывод как баллов и т.д. Имхо процентно-балловая система легче всего (в ней сложнее запутаться при создании), а уж каким образом представить эти данные пользователю это зависит от конкретной ситуации. |
Автор: azesmcar 24.6.2010, 09:38 |
текущий рейтинг пользователя = avg(рейтих всех статей пользователя) оценка пользователя = (сама оценка (допустим по 5-и бальной шкале) / 5) * текущий рейтинг пользователя пример статьи пользователья 1 статья 1 - рейтинг 4 статья 2 - рейтинг 5 статья 3 - рейтинг 3 текущий рейтинг пользователя = 4 допустим он оценил какую-то статью на 5-ку оценка пользователя = (5 / 5) * 4 = 4 на 4-ку оценка пользователя = (4 / 5) * 4 = 3.2 на 3-ку оценка пользователя = (3 / 5) * 4 = 2.4 и так далее так пойдет? |