The following warnings occurred: | |||||||||||||||
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.3.6 (Linux)
|
Предложение по подсчету рейтинга игрока - Printable Version +- Форум онлайн-игры "Акционер" (https://forum.stockholdergame.com) +-- Forum: Все форумы (https://forum.stockholdergame.com/forumdisplay.php?fid=1) +--- Forum: Есть идея! (https://forum.stockholdergame.com/forumdisplay.php?fid=9) +--- Thread: Предложение по подсчету рейтинга игрока (/showthread.php?tid=40) |
RE: Предложение по подсчету рейтинга игрока - Alkonaft - 04-25-2016 (04-25-2016, 07:03 PM)Admin Wrote:Quote:Т.е. формулы как таковой еще нет, Если это просто - почему не делаем ? Если сложно - формула нам не подходит. Чатланский разум крепнет RE: Предложение по подсчету рейтинга игрока - Зырянов - 04-25-2016 (04-25-2016, 07:03 PM)Admin Wrote:Quote:Т.е. формулы как таковой еще нет, 1) От десятых долей можно избавиться просто округляя получаемые значения до целых. Понимаю - может получиться так, что сразу несколько человек после таких округлений, будут иметь одинаковые значения рейтинга. 2) А если взять константу = 10, то нас ждет другая неприятность... Например, прибавка к рейтингу составит не 5 очков, как в моем примере, а 50... не 2,5, а 25... Рейтинговая таблица потеряет свою стабильность. Одно поражение и вчерашний лидер упал на несколько мест. Кто-то выиграл и вдруг с 5 места вознесся на 1... Такие скачки совершенно не приемлемы... Если наша формула допускает только 2 таких альтернативы (константа = 5 нам тоже не поможет), ни одна из которых нас не устраивает, значит надо строить другую формулу. RE: Предложение по подсчету рейтинга игрока - Governor - 04-26-2016 Вот какое у меня предложение по формуле: Rn = Ro + C + (W - We)*10 Rn - новый рейтинг Ro - старый рейтинг. Начальный рейтинг игрока - 1000 ед. C = (КaА-КbA)/(KaА+KbА) + (КaB-КbB)/(KaB+KbB) Где КaA - капитал игрока а в партии А, КbA - капитал игрока b в партии А КaB - капитал игрока а в партии B, КbB - капитал игрока b в партии B W - результат игры ( 2- победа, 1 - ничья, 0 - поражение) We - ожидаемый результат игры. Вычисляется по фрмуле: Ra - Rb / 400 We = 2 / ( 10 + 1) Ra - рейтинг игрока А Rb - рейтинг игрока В Ra - Rb / 400 - это показатель степени. Чем хороша такая формула? 1. Победитель гарантированно повышает свой рейтинг при любом соотношении капиталов 2. При ничье и равенстве капиталов (С=0) рейтинг более сильного игрока понижается, а более слабого - повышается. 3. Если равные по рейтингу игроки сыграют вничью, но в одной из партий у них капиталы будут примерно равны, а в другой один игрок сильно оторвётся от противника (C>>0), то его рейтинг вырастет, а рейтинг соперника упадёт. 4. Только очень большой перевес по капиталам в случае ничьей может уравновесить перевес по исходному рейтингу. Т.е. более сильный игрок, если сыграет вничью с более слабым должен очень сильно победить по капиталу, чтобы сохранить свой рейтинг. 5. Тут капиталы в обеих партиях суммируются - как завещал нам наш любимый Автор 6. Но суммируются не абсолютные, а относительные капиталы - таким образом учитываются масштабы партий. RE: Предложение по подсчету рейтинга игрока - Admin - 04-26-2016 Поправочка - при результатах игры 2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка. RE: Предложение по подсчету рейтинга игрока - Зырянов - 04-26-2016 (04-26-2016, 09:26 AM)Admin Wrote: Поправочка - при результатах игры 2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка. То Admin: Это единственное, что ты можешь сказать по поводу этой формулы? Ты не видишь необходимости прокомментировать шесть пунктов, объединенных самонадеянным заголовком "Чем хороша эта формула"? RE: Предложение по подсчету рейтинга игрока - Governor - 04-26-2016 (04-26-2016, 09:26 AM)Admin Wrote: Поправочка - при результатах игры 2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка. Подправил, спасибо! RE: Предложение по подсчету рейтинга игрока - Зырянов - 04-27-2016 (04-25-2016, 06:37 PM)Alkonaft Wrote:(04-25-2016, 05:59 PM)Зырянов Wrote: Строим таблицу. Я тоже думаю, что большой сложности сделать формулу из описанных правил НЕТ... Но сам этого сделать не могу. Иначе давно эту формулу показал бы... RE: Предложение по подсчету рейтинга игрока - Alkonaft - 04-27-2016 Формулу может и не выведу с ходу, но автоматизировать подсчеты вроде ничего сложного. Единственное, тут не описывается где грань "слабого" и "сильного" соперника. Какая величина рейтинга должна их отделять ? Или пропорционально сделать ? 5 очков базовых. +- поправка рейтинга. Поправка рейтинга = модуль ((рейтинг1 - рейтинг2) /(5*100)) 100 - с потолка взял т.е. в этом примере - если разница в рейтинге 500, то победа (2:0) сильного игрока, даст ему +4 к рейту (-4 слабому). Победа слабого +6 (-6 сильному). если разница в рейтинге 50, то победа (2:0) сильного игрока, даст ему +4,9 к рейту. Победа слабого +5,1. Это я сходу изобразил,. коллективный разум меня поправит.. RE: Предложение по подсчету рейтинга игрока - Governor - 04-27-2016 Quote:За победу 2:О Игрок получает прибавку к рейтингу 5 очков (возьмем пока за основу эти очки). Это та же самая формула Эло, только описанная ступенчато и нечётко относительно соотношения рейтингов соперников. В формуле Эло победитель увеличивает свой рейтинг на величину, пропорциональную 2-WE, где WE - ожидаемое количество очков в партии, зависящее от соотношения исходных рейтингов игроков. Если сильный игрок играет со слабым, то у сильного 1<WE<2, а у слабого 0<WE<1. При ничье более сильный игрок теряет в рейтинге, а более слабый - выигрывает. Величина изменения пропорциональна разности WE и 1. Та формула, по которой я считал, плоха тем, что по ней получается, что если более сильный игрок сыграл со слабым вничью, но победил по капиталу, он всё равно теряет рейтинг, причём тем больше, чем с большим счётом он победил! Поэтому я и придумал не умножать коэффициент С, определяющий победу по капиталу на (W-WE), а складывать с каким-то весом. Тогда победа в ничье по капиталу для более сильного игрока будет уравновешивать падение рейтинга при ничьей. Пример: пусть у Васи был рейтинг 1200, а у Пети - 800. Тогда ожидаемый исход игры для Васи (800-1200) / 400 (1200-900) / 400 We = 2 / ( 10 + 1):2 / ( 10 + 1)=2/1.1:2/11=1.8:0.18 Т.е. Вася в среднем играет с Петей со счётом 1.8 : 0.18 Предположим, они сыграли вничью. Тогда для Васи W-WE = 1 - 1.8 = -0.8 А для Пети W-WE = 1-0.18= 0.82 Если мы умножим эту разность на некоторую величину С, зависящую от соотношения капиталов Васи и Пети (не важно, отношения их или суммы), то Вася потеряет тем больше, чем больше С. Ведь формула такая: Rновый = Rстарый + С*(W-WE) Поэтому надо не умножать C на W-WE, а складывать их с весами: Rновый = Rстарый + a*С+b*(W-WE) Какие надо взять величины a и b - вопрос открытый. Если a=0, то изменение рейтингов не будет зависеть от соотношения капиталов и получится чисто шахматный рейтинг. Если b=0, то изменение рейтингов не будет зависеть от исходных рейтингов игроков, а только от соотношения капиталов. Если надо, чтобы при победе 2:0 прирост рейтинга для равных игроков составлял 5 очков, 4.5 для более сильного и 6 для более слабого, это можно подобрать коэффициентом b. Если надо, чтобы при ничье с плюсом прирост рейтинга для равных игроков составлял от 2.5 до 3.2 очков, от 2.25 до 2.9 для более сильного и от 2.75 до 3.45 для более слабого, это можно подобрать коэффициентом a. Остаётся вопрос, как считать величину С. Я предлагаю простую формулу: разность капиталов в каждой партии делится на их сумму и полученные величины складываются. Для победителя эта величина от 1 до 2, для побеждённого - от 0 до 1. Тогда, если в том же примере Вася выиграл по капиталу с крупным счётом, то С будет близко к 2 (допустим, 1.8), что уравновесит потерю во втором слагаемом: -0.8 Получится: Rновый = Rстарый + a*1.8-b*0.8 Если положить a=b=1, то рейтинг Васи вырастет на 1. RE: Предложение по подсчету рейтинга игрока - antej - 04-27-2016 Господа! объясните мне, глупому, пожалуйста на таком примере. он не из пальца высосан, и такие ситуации будут повторяться - когда придут другие опытные игроки. я с господином Shora сыграл 5 игр, и только две выиграл. но - в начале он тоже по рейтингу считался "начинающим", хотя по факту таковым не являлся. и что же - мои победы, за которые вы все мне должны стоя аплодировать будут внесены в рейтинг как ничтожные, а мои поражения - как сокрушительное и позорное обрушение рейтинга? и есчо - а не будет ли мне просче войти в игру с нуля под новым ником, и тогда благодати всякие и бонусы разные посыпяться на меня с небес? а то я тяну за собой карму всех игр неудачных, которые не всегда играл с вниманием предельным да с калькулятором инженерным. пысы. я эти огромные формулы да коэфициенты сложные и так понять не могу, вот и не пробую, но принцип понять хотел бы. |