@x-ider

Какую выбрать формулу для вычисления рейтинга?

Имеется 3 поля: победы, ничьи, поражения. Какую нужно выбрать формулу для вычисления рейтинга, учитывая, что может быть 0 побед (в таком случае, например, игрок 0:2:1 успешнее игрока 0:0:1), 0 поражений (в таком случае, например, игрок 0:2:0 успешнее игрока 0:1:0). Т.е. первостепенна победа, затем ничьи.
UPD:
Так как статистика пользователю выдаётся сразу по 3 уровням сложности игры, то хочется знать его рейтинг в любой момент времени, а не высчитывать все рейтинги всех игроков при запросе. Также отношение побед/поражений преимущественно, затем идёт количество ничьих партий.
Если в возможной формуле рейтинг двух игроков будет одинаковый при разных результатах, то успешнее игрок, сыгравший меньше партий. Т.е. достигший результата за меньшее число попыток.
  • Вопрос задан
  • 404 просмотра
Пригласить эксперта
Ответы на вопрос 5
@nirvimel
Тут нужна не алгебраическая формула, а сортировка по двум полям: значение в первом поле равно победам минут поражения, во втором поля ничьи. Сортировка работает так, что по второму полю будут сортироваться только строки, в которых совпадают значения в первом поле. Если все же хотите получить функцию, то индекс в отсортированном списке и будет значением этой функции. Функция вычисляется для конкретного игрока, но аргументом к ней идет весь список игроков, а для отдельного игрока в вакууме значение функции не определено.

Можно предложить альтернативный вариант сортировки: три поля, первое - победы, второе - поражения с отрицательным знаком (выше окажутся игроки с меньшим числом поражений), третье - ничьи.
Но первый вариант лично мне кажется более сбалансированным.
Ответ написан
Комментировать
Denormalization
@Denormalization
Победы + ничьи * 0.5 - поражения = рейтинг
Ответ написан
@albyaman
Студент
Победа - поражения * 0.5 + ничья / 2
Может подойдет
Ответ написан
Комментировать
@Neonoviiwolf
Flutter developer
сделайте матрицу игроков. Столбики сверху вниз - соотношение побед/поражений. Добавьте строки, где одинаковое соотношение побед/поражений, далее сделайте выборку у кого соотношения "ничья". В итоге в столбце первый элемент (игрок) будет лучшим по соотношению победа/ничья/проигрыш, далее выводим из его строки остальных, у кого соотношение победа/проигрыш такое же, но "ничья" хуже. Как строка кончилась, переходим к следующему элементу столбца и т.д.
Ответ написан
miraage
@miraage
Старый прогер
А чем футбольная формула не подходит?
3 очка за победу, 1 очко за ничью, 0 за поражение?!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы