За последние 24 часа нас посетили 30706 программистов и 1479 роботов. Сейчас ищут 858 программистов ...

Алгоритм для звёздночного рейтинга

Тема в разделе "PHP для новичков", создана пользователем Dimon2x, 4 окт 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    Какой сделать пятизвёздочный рейтинг?

    Я так понимаю, если 10 пользователей ставили оценку 5, то все 5 звёзд горели, но если 1 пользователь поставит оценку 3, то будет гореть только 3 звезды, я считаю, что это не правильно, 10 пользователем нравится и одному не нравиться и рейтинг из-за этого не должен так резко упасть?

    Наверно тут надо суммировать всех пользователей и потом уже искать как-то среднюю оценку.

    10 пользователей поставило оценку 5.
    1 пользователь оценку 3.

    Получается всего проголосовало 11 пользователей.

    5*10 = 50 // 10 пользователей поставили оценку 5
    1*3 = 3 // 1 пользователей поставили оценку 3
    50+3 = 53

    53/11 = 4.8

    Другой вариант

    5*10 = 50
    3*7 = 21
    50+21 = 71
    71/17 = 4.1

    Ещё

    5*10 = 50
    3*7 = 21
    2*10 = 20
    50+21+20 = 91
    91/27 = 3.3


    Я считаю что это неправильно, предлагаю, что лучше сделать 5 штук оценок
    *
    **
    ***
    ****
    *****

    И потом уже выводить количество проголосовавших пользователей, возле каждого поля.

    Или вообще лучше сделать как на этом форуме, что бы рейтинг просто увеличивался счётчиком?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
  5. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    Покажи в чём я ошибся
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    "Лучше" — понятие субъективное. Программа решает задачи поставленные бизнесом. Глупо рассуждать о выборе не имея определённого запроса.

    Среднее арифметическое ты вычисляешь правильно. Только не забудь про деление на ноль.
    --- Добавлено ---
    Если рассуждать о достоверности оценок и противодействии накруткам, то это уводит нас далеко за пределы алгоритма среднего или медианы.
     
  7. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    @artoodetoo я же буду записывать в таблицу проголосовавших пользователей, что бы не накручиапли
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ну тогда предусмотрел всё, лол.
     
  9. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Dimon2x, этого мало. Фиктивные аки никто не отменял.
     
  10. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @Dimon2x, на АлиЭкспресс выводится и среднеарифметическое и отдельно по количеству звездочек.
     
  11. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    Что ещё надо предосмотреть?
    --- Добавлено ---
    Можно разрешить голосовать, только тем, кто зарегался не менее полугода назад
     
  12. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    это самое худшее что можно придумать
     
  13. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ну без регистрации (с тел номером) максимум по ip. Можно еще в localStorage писать что бы школьников отсеять.
    --- Добавлено ---
    А вообще нужно смотреть по ситуации те же лайки добавляют пост в избранное соответсвенно можно сделать страничку с сортировкой и тут по ip лучше не резать.
     
  14. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    По хорошему это делается иначе - звездочки ставят все с регистрацией и без, а в итоге выводится значение, которое админ или скрипт (случайным числом) сам назначит. Все равно никто не будет проверять истинность. А потом авторам постов можно продавать рейтинг :p
     
  15. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    да брось! так не кто не делает )
     
    Maputo нравится это.
  16. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    все так делают, но говорят, что рассчитывают "вес" аккаунта и на основании этого считают статистику, а те кто посмелее еще и моднющее слово релевантность сюда могут "запилить"... враки всё :)
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Это ты просто форумов не видел где в модеров по 30к сообщений:)
     
  18. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    Можно разрешить голосова
    Мне это нравится
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.814
    Симпатии:
    1.332
    Адрес:
    Лень
    время лайка еще
     
  20. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Вот из-за таких идей иногда попадаешь на кино класса "залупа".
    @Dimon2x оставь оценки как есть, выводи среднее значение и не парься. Если так переживаешь, что на твоём ресурсе будут форсить рейтинг, то наверни логики по оценке рейтинга, типа количества низких оценок подряд и/или их отношение к остальным оценкам. Но нужно сидеть с напильником и пилить тесты.
     
  21. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Знание - сила. Теперь Вы не будете искать кино по рейтингам. ;)
     
  22. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Рейтинг без регистрации нужно делать по ip + storage как было сказано выше.
     
  23. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @nospiou, все начинается с того какую цель преследует рейтинг. Если просто "потому что у всех есть - и я тоже хочу" - сойдет любая логика. Если есть желание получить за счет пользователей достоверную оценку контента - это по большей части миф.
     
    artoodetoo нравится это.
  24. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Прямая дорога в ад.
    Не вижу проблем чтобы замутить OAuth.
     
  25. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ну ты еще заставь кого нибудь зарегистрироваться... Людям даже кнопочку для регистрации через соцсети нажать лень. Да и смысл если то и дело что спамят. Я он пользуюсь временным емейлом когда прям заставляют.
    --- Добавлено ---
    кстати почему у меня такой странный ник... no(no)sp(spam)io(indian ocean)u(user):)