|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
alexey664655 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 26.5.2012 Репутация: нет Всего: нет |
Прошу помощи, не могу сообразить, как сделать правильную формулу рейтинга автора в блоге.
Имеется:
|
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А голос - это что? Что-то типа числа 0-9 для одного юзера для одной статьи ?
Чем отличаются $ratingsum; // Сумма всех голосов и $ratingcount; // Сумма всех проголосовавших -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
alexey664655 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 26.5.2012 Репутация: нет Всего: нет |
Надо чтоб рейтинг автора зависел от количества его статей и людей проголосовавших за эти статьи.
Проголосовать может в одной статье человек один раз - максимальная оценка 5, а минимальная 1 $ratingsum; - Это сумма всех голосов во всех статьях автора $ratingcount; - Это сумма всех проголосовавших людей (уникальных) во всех статьях автора Это сообщение отредактировал(а) alexey664655 - 12.8.2019, 17:22 |
|||
|
||||
Vardoulacha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 183 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Что это делает в разделе про PHP?
Вопрос просто про алгоритмы. Вы сначала на бумажке словами напишите формулу (т.н. алгоритм), а потом уже программируйте эту формулу на ЯП. Рейтинг автора = кол.во статей автора * (сумма рейтингов всех статей автора / 100) |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
$ratingcount; - Это сумма количество всех проголосовавших людей (уникальных) во всех статьях
? а количество проголосовавших за этого автора есть ? Тогда средняя оценка за голос автору и будет рейтингом. а так - не хватает данных. Хотя можно рейтингом считать просто сумму всех оценок автору. При достаточно большой продолжительности опроса - у всех статей будут примерно одинаковое количество оценивающих... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Vardoulacha, в твоей формуле автор, написавший 9 статей со средним рейтингом 1 будет иметь такой же рейтинг, как и автор, написавший одну статью с рейтингом 9 ?
Это сообщение отредактировал(а) ksnk - 12.8.2019, 18:20 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
alexey664655 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 26.5.2012 Репутация: нет Всего: нет |
Вот и я задумался, как можно наиболее правильно вывести рейтинг автора?
Данные могу вывести только такие: $ratingsum; - сумма всех голосов во всех статьях автора $ratingcount;- количество всех проголосовавших людей (уникальных) во всех статьях автора $contentsum; - количество статей у автора Это сообщение отредактировал(а) alexey664655 - 12.8.2019, 18:39 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Дык, тогда все просто, средняя оценка за голос - $ratingsum/$ratingcount - считай это рейтингом. Тут будет не совсем справедливо для автора, написавшего 100 статей с рейтингом X и 1 статью с тем же рейтингом. Но данных маловато, для более "справедливого" рейтинга. Вообще - рейтинг нужно бы считать как пару чисел - "Рейтинг графомана" - количество статей и "Рейтинг пользы" - среднюю оценку - по делу пишет или фигню какую-то... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
alexey664655 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 26.5.2012 Репутация: нет Всего: нет |
Других данных просто нет, но надо чтоб была справедливость. Наверно без коэффициента не обойтись.
Например: $rating= ($ratingsum/$ratingcount)+($contentsum*0.1); Где 0.1 - понижающий коэффициент чтоб число было небольшое. Это сообщение отредактировал(а) alexey664655 - 13.8.2019, 04:02 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Со справедливостью все сильно субьективно. пусть будет примерно так - за большой вклад в библиотеку статей полагается бонус, но не больше половины максимального рейтинга. Рейтинг считается как средняя оценка голоса + количество статей
= ($ratingsum/$ratingcount)+(4*(1-1/(1+$contentsum))) Тоже не особо справедливо, но вроде получше... P.S. формулу заменил на более правильную Это сообщение отредактировал(а) ksnk - 14.8.2019, 00:39 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |