Голосование алгоритма: как вычислить разряд?

Я пытаюсь изобразить наш способ вычислить разряд. Прямо сейчас это просто берет отношение побед / потери каждой отдельной записи, так например, каждый победил 99 раз из 100, это имеет 99%, выигрывая разряд. НО если запись победила 1 из общего 1 голоса, она будет иметь 100%, выигрывая разряд, но определенно это не может быть выше что из того, которое победило 99 раз. Каков был бы лучший способ сделать это?

6
задан z - 22 January 2010 в 17:44
поделиться

5 ответов

- 4244745-

В зависимости от того, насколько сложным вы хотите сделать, система ELO System Chess использует (или что-то подобное) может быть то, что вы хотите: http://en.wikipedia.org/wiki / Elo_rating_system

Даже если человек выиграл 1/1 матчи, его рейтинг будет далеко под тем, кто выиграл / потерял сотни матчей против жестких противников.

5
ответ дан 9 December 2019 в 20:43
поделиться
- [1118487-

Попробуйте что-то вроде этого:

votes = wins + losses
score = votes * ( wins / votes )

Таким образом, что-то с 50% побеждает, но миллион голосов все равно будет опередить что-то с 100% победами, но только один голос.

Вы можете добавить дополнительный вес в зависимости от возраста (в течение нескольких дней), тоже что-то вроде

if age < 5:
    score = score + ((highest real score on site) * ((5 - age) / 5)

это поставит новых записей прямо в верхней части первой страницы, а затем они будут медленно двигаться Список в течение следующих 5 дней (я предполагающий, что возраст - это дробное число, а не просто целое число). Через 5 дней они будут введены в список, основанные исключительно на счет от предыдущего бита псевдокода.

6
ответ дан 9 December 2019 в 20:43
поделиться

Если я правильно понимаю вопрос, то тот, кто получает больше голосов, имеет более высокий ранг.

0
ответ дан 9 December 2019 в 20:43
поделиться

Вы всегда можете использовать систему точки, а не коэффициент выигрышей / убытков. Выиграние всегда будет давать очки, а затем вы могли бы сыграть с либо удалением очках для проигрыши, не награждающие очки вообще для проигрыши или награждения меньших очков для проигрыша. Все зависит точно, как вы хотите, чтобы люди были ранжированы. Например, вы можете захотеть дать 2 балла за победу и 1 балл для проигрыша, если вы хотите любить людей, которые участвуют в тех, кто не имеет (что звучит вроде как то, что вы говорили в своем примере человека, играющего в 100 играх VS 1 игра). NHL использует аналогичную технику для рейтинга (2 балла для победы, 1 точка для потери сверхурочных, 0 баллов для регулярных потерь). Это может дать вам еще немного гибкости.

1
ответ дан 9 December 2019 в 20:43
поделиться

. гораздо сильный конкурент?

0
ответ дан 9 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: