У большинства наивных подходов к проблеме есть серьезные проблемы. Хуже всего то, как bash.org и qdb.us отображает котировки - пользователи могут голосовать за котировку вверх (+1) или вниз (-1), а список лучших цитат отсортировано по общему количеству баллов. Это страдает от ужасного смещения во времени - старые цитаты набрали огромное количество положительных голосов за счет простого долголетия, даже если они лишь незначительно смешны. Этот алгоритм может иметь смысл, если шутки становятся смешнее, когда они становятся старше, но - поверьте мне - они не делают.
Существуют различные попытки исправить это - посмотреть на количество положительных голосов за период времени, взвесить более свежие голоса, внедрить систему распада для более старых голосов, рассчитать соотношение положительных и отрицательных голосов и т. Д. Большинство страдают от других недостатки.
Лучшее решение - я думаю - это то, что веб-сайты Самые смешные Самые милые , Самые прекрасные и Лучшая вещь use - модифицированная система голосования Condorcet :
Система присваивает каждому номер, исходя из того, с чем он сталкивался, какой процент из них он обычно бьет. Таким образом, каждый получает процентный балл NumberOfThingsIBeat / (NumberOfThingsIBeat + NumberOfThingsThatBeatMe). Кроме того, вещи запрещены в верхнем списке, пока они не будут сравнены с разумным процентом от набора.
Если в наборе есть победитель Кондорсе, этот метод найдет его. Поскольку это маловероятно, учитывая статистическую природу, он находит тот, который «наиболее близок» к тому, чтобы стать победителем Кондорсе.
Для получения дополнительной информации о внедрении таких систем может быть полезна страница Википедии по Ranked Pairs .
Алгоритм требует, чтобы люди сравнивали два объекта (ваш выбор Pick-A-or-B), но, честно говоря, это хорошо. Я считаю, что в теории принятия решений очень хорошо принято, что люди намного лучше сравнивают два объекта, чем в абстрактном рейтинге. Миллионы лет эволюции делают нас хорошими в выборе лучшего яблока с дерева, но ужасны в принятии решения, насколько близко мы собрали яблоко, к истинной платонической форме яблочности. (Именно поэтому, кстати, Процесс аналитической иерархии такой изящный ... но это становится немного не по теме.)
И последнее замечание: SO использует алгоритм для поиска лучших ответов, который очень похож на алгоритм bash.org для поиска лучших предложений. Это работает хорошо здесь, но ужасно терпит неудачу там - в значительной степени потому что старый, высоко оцененный, но теперь устаревший ответ здесь, вероятно, будет отредактирован. bash.org не позволяет редактировать, и неясно, как вы вообще отредактируете десятилетние анекдоты об устаревших интернет-мемах, даже если бы вы могли ... В любом случае, я считаю, что правильный алгоритм обычно зависит от деталей вашей проблемы. : -)