| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Рейтинг автора в блоге |
| Автор: alexey664655 12.8.2019, 16:32 | ||
| Прошу помощи, не могу сообразить, как сделать правильную формулу рейтинга автора в блоге. Имеется:
|
| Автор: ksnk 12.8.2019, 16:43 |
| А голос - это что? Что-то типа числа 0-9 для одного юзера для одной статьи ? Чем отличаются $ratingsum; // Сумма всех голосов и $ratingcount; // Сумма всех проголосовавших |
| Автор: alexey664655 12.8.2019, 17:14 |
| Надо чтоб рейтинг автора зависел от количества его статей и людей проголосовавших за эти статьи. Проголосовать может в одной статье человек один раз - максимальная оценка 5, а минимальная 1 $ratingsum; - Это сумма всех голосов во всех статьях автора $ratingcount; - Это сумма всех проголосовавших людей (уникальных) во всех статьях автора |
| Автор: Vardoulacha 12.8.2019, 17:22 |
| Что это делает в разделе про PHP? Вопрос просто про алгоритмы. Вы сначала на бумажке словами напишите формулу (т.н. алгоритм), а потом уже программируйте эту формулу на ЯП. Рейтинг автора = кол.во статей автора * (сумма рейтингов всех статей автора / 100) |
| Автор: ksnk 12.8.2019, 17:49 |
| $ratingcount; - Это сумма количество всех проголосовавших людей (уникальных) во всех статьях ? а количество проголосовавших за этого автора есть ? Тогда средняя оценка за голос автору и будет рейтингом. а так - не хватает данных. Хотя можно рейтингом считать просто сумму всех оценок автору. При достаточно большой продолжительности опроса - у всех статей будут примерно одинаковое количество оценивающих... |
| Автор: ksnk 12.8.2019, 18:19 |
| Vardoulacha, в твоей формуле автор, написавший 9 статей со средним рейтингом 1 будет иметь такой же рейтинг, как и автор, написавший одну статью с рейтингом 9 ? |
| Автор: alexey664655 12.8.2019, 18:35 |
| Вот и я задумался, как можно наиболее правильно вывести рейтинг автора? Данные могу вывести только такие: $ratingsum; - сумма всех голосов во всех статьях автора $ratingcount;- количество всех проголосовавших людей (уникальных) во всех статьях автора $contentsum; - количество статей у автора |
| Автор: alexey664655 12.8.2019, 19:47 |
| Других данных просто нет, но надо чтоб была справедливость. Наверно без коэффициента не обойтись. Например: $rating= ($ratingsum/$ratingcount)+($contentsum*0.1); Где 0.1 - понижающий коэффициент чтоб число было небольшое. |
| Автор: ksnk 13.8.2019, 15:22 |
| Со справедливостью все сильно субьективно. пусть будет примерно так - за большой вклад в библиотеку статей полагается бонус, но не больше половины максимального рейтинга. Рейтинг считается как средняя оценка голоса + количество статей = ($ratingsum/$ratingcount)+(4*(1-1/(1+$contentsum))) Тоже не особо справедливо, но вроде получше... P.S. формулу заменил на более правильную |