Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 15 лет назад, По-русски

Как некоторые уже успели заметить – на сайте появился рейтинг участников соревнований. Пока он тоже находится в состоянии beta, но выглядит вполне адекватным. Вот как он считается.

Каждый человек характеризуется своим рейтингом, числом R . Если у человека A рейтинг равен R A ­, а у человека B равен R B , то формула


дает вероятность того, что A окажется выше B в итоговом рейтинге. Кстати, здесь все очень близко к рейтингу Эло.

Перед тем как обновить рейтинг по результатам прошедшего соревнования для каждого участника считается его seed – математическое ожидание места, которое он займет на этом соревновании. Таким образом, для каждого участника известен его seed (ожидаемое место) и rank (то место, которое он в итоге занял). В зависимости от разности этих значений рейтинг увеличивается или уменьшается. Чем больше разница значений, тем больше изменяется рейтинг.

Есть еще несколько технических моментов:
  • если это первый контест участника, то его seed вычисляется как 1 + n / 2, где n– общее число участников раунда;
  • изменение рейтинга участников соревнования умножается на поправочный коэффициент такой, что сумма рейтингов участников остается неизменной (до и после раунда).
Как и на TopCoder все пользователи делятся на два дивизиона: первый (рейтинг более 1500 1650) и второй (рейтинг не более 1500 1650). Пользователи без рейтинга автоматически попадают во второй дивизион.

Высокого вам рейтинга, MikeMirzayanov
  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Предусмотрена ли борьба с инфляцией рейтинга?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Пока так: "изменение рейтинга участников соревнования умножается на поправочный коэффициент такой, что сумма рейтингов участников остается неизменной (до и после раунда)".

    Сумма рейтингов остается неизменной.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А значит возможно что одновременно с таргетами (3000+) появятся и мазохисты (0-).
      • 10 лет назад, # ^ |
          Проголосовать: нравится -16 Проголосовать: не нравится

        Да уж, видал таких (worse, например:)

        82 неудачных взлома за раунд))

        • 7 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Как-то некрасиво делать подобного рода комментарии, Вам не кажется?

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
в дальнейшем контесты как и на ТС будут по дивизионам?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Будет три вида контестов: Division 1 Only, Division 2 Only и Both Divisions
    • 10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      О круто Both divisions это для только для учеников и новичков? Жду не дождусь когда появится Both Divisions...

      • 10 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится

        Both Divisions, очевидно, раунд для обоих дивизионов, не только для учеников и новичков

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Дорешивание на рейтинг не влияет?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Конечно влияет: подорешивал - стал круче, стал круче - рейтинг вверх!
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      это глупо, можно запросто списать у тех кто сдал!
      • 14 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
        коды ведь общедоступны
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Нет, тут дело совсем в другом.
        it4.kp имел в виду, что если ты дорешаешь задачу на дорешивании (замечу, сам), то ты получишь опыт, дополнительную практику. Тем самым ты улучшишь свой навык решения задач, а, следовательно, лучше будешь выступать на соревнованиях.
        Чем лучше будешь выступать на соревнованиях, тем выше место ты займёшь.
        Чем выше место, тем выше реитинг. :-)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Сори за оффтоп... не знаю куда писать (кстати, думаю будет неплохо добавить вам в свой блог отдельную тему для обсуждения сайта)...

Так вот... почему то иногда когда перехожу на сайте по ссылкам у меня включается закачка gz архивов... например если бы я нашёл где нить ссылку на эту тему и кликнул по ней.. то с вероятностью около 1-5% мне предложило бы скачать 102.gz (см. адресную строку). Но потом перейдя ещё раз получается таки перейти туда куда нужно. (codeforces открываю в хроме)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Конечно не факт что это не хром у меня тупит... 
    • 10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      у меня тоже такая тема была, я вот сегодня скачал мозиллу, все норм

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Пока он тоже находиться в состоянии beta

НаходиТСЯ же =(

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А может лучше не считать seed, а вычислять фактический рейтинг в рамках одного соревнования (т.е. такой рейтинг, при котором математическое ожидание места для соревнования совпадет с фактическим), и считать новый рейтинг так: new_rating = old_rating + ( fact_rating - old_rating ) * some_coeff (где 0 < some_coeff <= 1)? А для новых участников делать new_rating = fact_rating. Так по-моему было бы точнее.

А ещё лучше (но, наверное, сложнее технически) считать текущий рейтинг как среднее фактических рейтингов за несколько последних соревнований; а в идеале, наверное, как взвешенное среднее всех соревнований, где последние имеют больший вес.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Перед внедрением система рейтинга обкатывалась на статистических данных и выглядит вполне адекватно.
15 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Предлагаю в таблицу "Зарегистрировавшиеся участники" на контест добавить столбец текущий рейтинг и сортить по нему.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Would you introduce the possibility to see progress of each user? Especially the highest rating ever reached??
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Я не совсем понял, если я занял 100-ое место в 1-ом дивизионе и 100-ое место во 2-ом, то это равносильно? т.е. мой рейт увеличится на одинаковое кол-во баллов?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    При условии, что в этих контестах в твоем дивизионе участвовали одни и те же люди с теми же самыми рейтингами, — да.
14 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
Извините, если что, за тупость, но это не то же самое, что
?
14 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
Does the sum of ratings increase together with the number of registered users or the more users register the less the ratings are going to be?
Sorry, unwillingly I marked this comment as one in Russian, so I wrote it in both languages.

Правка> Так, как неохотно пометил, что коментарий по-русски, вот вопрос по пусскам: Когда количество участников увеличевается, сумма рейтингов тоже увеличевается или они просто становятся менше?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Попытаюсь предположить:

    С появлением нового участника сумма рейтингов увеличивается.

    Если новый участник выступает хорошо и его рейтинг становится > 1500 (базового), то он «забирает» чужой рейтинг.

    Если рейтинг нового участника < 1500, то он «отдаёт» свой рейтинг более сильным участникам.

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кстати, можно поподробнее про то, как в олимпиадах ЗКШ высчитывался командный рейтинг? На первом контесте мы(почти Мозырь-1) получили +141 заняв 4 место. На втором заняли 12-е место, но все равно получили +141. На третьем мы заняли 10-е место (10<12), но получили +112 (112<141).
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
    В олимпиадах ЗКШ использовался рейтинг ИТМО. Это какая-то хитрая функция от места, числа задач и числа задач решенных 1 местом. Подробно что это за функция не знаю, но знаю что она медленно убывает с местом и быстро с числом решенных задач. Например у нас со 2 местом за первый контест 144 а за второй с тем же вторым местом 198. Разница в том что в первом случае мы решили на 3 задачи меньше чем 1 место, а во втором решили столько же.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    формула (т.н. "Рейтинг ИТМО") выглядит так:
    R = 100· (Solved / Winner)· (2· Teams - 2) / (Teams + Place - 2)
    Solved - сколько задач решил участник,
    Winner - сколько задач решил победитель (1 место),
    Teams - количество участников,
    Place - итоговое место.
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Немного не в тему:
Было бы удобно убрать привязку к регистру там, где дело касается ников, например в поиске на странице http://mirror.codeforces.com/contestRegistrants/42
14 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
There are many comments in russian version that I don't understand and this subject is on the top of recent actions.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Стойте, стойте, это подсчет рейтинга который в "социальной сети" использовали ?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Вчера написал свой первый контест, занял 216 место и получил рейтинг 1615. Человек, который занял 12 место (это тоже был его первый контест), получил рейтинг 1643.
Точно сейчас все правильно считается? Или это только в первом контесте так происходит?

И можно еще увидеть конкретные формулы? Я раньше думал, что тут рейтинг Эло используется для всех пар участников, но теперь я сомневаюсь в этом, уж больно не похоже.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Рейтинг по дивизионам считается отдельно. Ты занял 15 место во 2м дивизионе из 150+, он занял первое. У вас обоих ожидаемое место было около 75. Т.е. вы оба выступили намного круче ожидаемого и получили кучу рейтинга. Он выступил лучше и получил рейтинга больше. ИМХО все логично.
14 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
Да, если отдельно для каждого дивизиона, то все похоже на правду.
Спасибо.

(ой, не туда написал)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
is number of rated contest each users joined before the current contest has some effect in rating system??
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Could someone explain to me why is the use of the Elo Rating for the seed generation different of simply sorting the participants by rating?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Say we had two people with the same (or very similar) rating. If we sort them, we will have to assign different seeds, which would give an unfair rating boost to the person seeded lower.

    Another example is the person seeded 1st. Elo rating's idea is to make expected rating change equal to 0 for every properly rated individual. However, a person seeded 1st will have a non-zero (quite large in practice) probability of losing rating (taking non-1st place) and zero probability of gaining rating (you can't go above 1st, can you?). This will make expected rating change for the highest-rated person always <0, showing that he is not properly rated.
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
А как рассчитать, зная свой рейтинг до контеста, какое место нужно занять на контесте, чтобы рейтинг после него увеличился?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А вот никак. В том и весь прикол, что точные формулы засекречены. Но, кстати, даже если бы они и были рассекречены, то: а) в любом случае подсчитать удалось бы лишь приближённо, ибо не все зарегистрированные потом участвуют в контесте; б) даже предположив, что мы точно знаем, кто будет участвовать, а кто нет, не факт, что можно рассчитать такое место для конкретного участника, не принимая во внимание результаты остальных (это просто предположение, что формулы могут быть сложнее, чем мы о них думаем).
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

    Ну если грубо, то сортируешь всех участников по рейту, затем если ты ниже середины, то перед собой ещё и всех новичков вставляешь. Вот примерно такое место.

    UPD. На этот вопрос отвечаю не в первый раз. Согласен с Alex_KPR по поводу дельты.
    Причём хочу добавить, ИМХО, дельта эта положительна, если участник ниже середины или в ней, и отрицательна - участник выше середины.
    • 13 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Неправда. Этак Геннадию надо первое занимать чтобы рейтинг не упал
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        очень даже правда

        Геннадию нужно занимать 1-ое +/-Δ место, чтобы рейтинг не падал

        daftcoder применяет фразу "Ну если грубо", чтобы подчеркнуть наличие этой самой дельты
        • 13 лет назад, # ^ |
            Проголосовать: нравится +5 Проголосовать: не нравится
          Ну так можно сказать что всем нужно занять 1е место +- дельту. Ладно, для Геннадия эта дельта будет небольшая, а вот для меня, например, довольно приличная - несколько десятков человек.
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            два десятка человек - достаточно небольшая дельта, если учесть, что участвуют три сотни человек
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я таким методом оценки пользуюсь на TopCoder. Хотя, как показал SRM 508, если занятая позиция чуть ниже позиции по рейтингу, рейтинг всё равно слегка ползёт вверх. Но это за счёт того, что я по рейтингу выше середины дивизиона, а если бы был ниже, должен бы вроде был быть обратный эффект (проверять не хочу). А что, на Codeforces уже тоже прикрутили фичу сортировки по рейтингу? Если так, то я как-то это пропустил...
      • 13 лет назад, # ^ |
          Проголосовать: нравится +9 Проголосовать: не нравится
        <master Yoda="says">
        Нет функции такой на сайте. Силу мысли используй и отсортируешь участников ты.
        </master>
»
13 лет назад, # |
Rev. 3   Проголосовать: нравится +5 Проголосовать: не нравится

"изменение рейтинга участников соревнования умножается на поправочный коэффициент такой, что сумма рейтингов участников остается неизменной (до и после раунда)".

"изменение рейтинга" "умножается".

Умножается все-таки изменение рейтинга или рейтинг? Если изменение, то практически всегда надо умножать на 0.

А если умножается рейтинг, то может возникнуть ситуация, когда рейтинг уменьшается не смотря на то, что rank > seed
  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Вообще, очевидно, что во фразе про умножение какая-то ошибка (умножать на 0, да).
    Я лично при эмулировании вычитал. Более того, если не округлять, то получалось, что поправочный коэффициент всегда равен 0. Округление создает небольшую ошибку.

    Видимо, когда-то домножался именно рейтинг, потому как ситуацию с падением рейтинга tourist после выигранного контеста иначе объяснить нельзя.

»
13 лет назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится
ради интереса пересмотрел кусок в Социальной Сети, таже формула для фейсмеша )

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    Да, а если еще и слушать фильм, а не только смотреть, то они говорят, что это рейтинг Эло для шахматистов.
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Division boundary is actually 1700 as described in FAQ.

»
12 лет назад, # |
  Проголосовать: нравится +35 Проголосовать: не нравится

Can you please update this post with the currently used formulas? I want to know how do you calculate the ratings, is it possible to publish something like this?

»
12 лет назад, # |
Rev. 7   Проголосовать: нравится -21 Проголосовать: не нравится

/__

»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Каковы правила изменения рейтинга для участников, которые зарегистрировались на соревнование, но ничего не посылали? Я сейчас наблюдаю ситуацию, когда человек зарегистрировался на соревнование, ничего не посылал, и при этом рейтинг у него не изменился.

То есть что, можно зарегистрироваться на соревнование, прочитать задачи, ничего не решить — и остаться со своим старым рейтингом?

»
12 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится

How is country rating computed?

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

How do the system calculate the seed of a participant ?

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

If a Division 1 person participates in Division 2 competition , obviously "out of competition" , then obviously he/she will not figure in rank list , but will the RATING change based on performance or not ???

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Rating for out of competition participants does not change.

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      I believe he meant this: Does the performance of out-of-competition guys effect the changes in the rating of the Div2 guys?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    No. All the rating changes will be the same as if the "out of competition" guys didn't participate at all.

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Could you please provide more data with final standings of a contest? If we had at least rating before and after the contest, it would be quite comfortable. Currently it's hard to download these values.

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

why there is no overall rank based on ratings.

»
11 лет назад, # |
  Проголосовать: нравится -17 Проголосовать: не нравится

I think rank should be displayed on homepage.

»
11 лет назад, # |
Rev. 3   Проголосовать: нравится -61 Проголосовать: не нравится

i suggest u update the border of Div-1 and Div-2 to 1700.

EDIT: i was just trying to help. i dont think this post should have got so many downvotes!

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I think you got the down votes because you asked Mike to change the rules of another website, topcoder. You also didn't provide any reasons for this change.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      No. I believe everyone who down voted him had thaught like you.

      Read the blog once more... and you will find out this :

      As at TopCoder all users are divided into two divisions: the first (rating over 1500 1650) and the second (rating not more than 1500 1650)._

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится -21 Проголосовать: не нравится

    up vote

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится -17 Проголосовать: не нравится

Хотелось бы, чтоб рейтинг присваивался за набранные очки, а не за занятое место. Часто получаеться так, что много участников набирают похожие количества очков, тогда какие-то два участника могут занять сильно разные места при похожом количестве очков. Пример тому такой — посмотрим на график — http://mirror.codeforces.com/blog/entry/11105 (#237 Div. 2, Standing visualization) — видно, что участники набравшие 1054, 434, 330 очков заняли соответственно N*1/4, N*1/2, N*3/4 места (N-количество участников). Я считаю, что набрать 600 очков сложнее чем 100, по этому желаю в будуещем присваивания рейтинга за очки а не за места. Взял сравнить трех участников, которым #237 был первый контест, вот: 1) agni13 очков_набранно:1062, место:496, изменение_рейтинга:+96, 2) last_two очков_набранно:484, место:768, изменение_рейтинга:+11, 3) sabooshubham очков_набранно:400, место:1253, изменение_рейтинга:-72. Участники преобрели рейтинги разницой в 85 и 83, хотя на контесте набрали очков разницой 578 и (всего) 84.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    А Вам бы не хотелось просто поднять свой уровень в СП? Уверен, после этого подобные идеи Вас посещать перестанут.

    Просто идея-то сама по себе очень необдуманная. Попробуйте для начала хотя бы придумать систему рейтинга, в которой рейтинг будет изменяться в соответствии с набранными очками, а не занятым местом. Именно систему, с четкими формулами и их обоснованием. Думаю, после этой попытки Вам сразу расхочется писать подобные предложения.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Точно, я как раз думал, думал, и ничего непридумал, и неимею что предложить. По-этому написал о самой "проблеме", а решение может кто по-умней и придумает, чего и желаю.

    • »
      »
      »
      11 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +7 Проголосовать: не нравится

      Предложение? Берем очки лидера B (прим. 4428), очки последнего E (-500). Диапазон — D=4928. Число участников N (2474). Некий учасник X набрал 498 очков. Тогда ему виртуально присваиваем такое место ( rank ) — (B-498)/D * N, а seed считаем так как раньше. И в конце всех умножаем на поправочный коэф.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        А как мы будем соотносить полученный по Вашей формуле rank с полученным по старой формуле seed'ом?

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          ..вроде сам непонимаю как. А если seed сделать таким — (посчитать его после соревнований) — взять место учасника по рейтингу (4-оe) и присвоить к нему очки, которые набрал 4-ое место занявший участник (3940), и определить seed по выше формуле — [(4428-3940)/4928 * 2474]-ое = 244.99-ое , то выглядит странно.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Конечная цель соревнования — не набрать больше очков, а занять более высокое место. Очки — лишь средство для достижения цели. Можно провести аналогию с шахматами — побеждает не тот, кто взял больше фигур, а тот, кто дал мат.

    Вообще, что именно происходит в

    что много участников набирают похожие количества очков, тогда какие-то два участника могут занять сильно разные места при похожом количестве очков
    ? Предположим, сто участников получили 500 очков, а ещё один — 505. Если смотреть по очкам, то он вроде как и не выделился среди остальных. Однако на самом деле этот участник придумал/сделал что-то, что не придумали/не сделали остальные сто! За это он в итоговой таблице выше этой сотни и получает заслуженную награду. Чем больше участников ниже, тем выше награда — всё логично.
    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится -10 Проголосовать: не нравится

      Результат соревнования и рейтинг ето разное.

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I don't understand. The expected rank is calculated with 2 people ' rating? For example, if I'm person A with rating 1371. And my actual place is 300. Then who will be person B?

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    As I've understood, by this formula server counts probability that you'll be better than other participant for each one. By this probabilities we can count your approximate place(seed), then get your real place(rank) and find change of rate, based on them.

»
10 лет назад, # |
Rev. 4   Проголосовать: нравится +5 Проголосовать: не нравится

New account have participate in Codeforces round — http://mirror.codeforces.com/contests/with/hujub , and gain 1494 (-6) rating and became green. But in results table he/she lost only to 4 greens, and win against hundreds of blues+purples. It is mystical for me, why he become green, not blue or purple? For example next (432nd) place (purple participant) increased his rating 1714 -> 1727. Is it fair?

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    When you are participating first time, your expected position (seed in terms of this post) is n/2+1

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

How is every users's seed (expected rank) calculated? Can you add an option to Codeforces that will tell the contestant what rank is he/she expected to take?

Is this seed calculated according to the last match?

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    if this feature is implemented, i suggest that this is only available after the contest.
    if available before contest, this knowledge can play with our emotions and possibly make us a bit slower for rest of the contest.

    • »
      »
      »
      10 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

      You don't get main idea of Elo-based ratings. Elo ratings of players have following property: if some set of players will now participate in the contest then expected order of final standings (more formally, most probable permutaiton in some sense) is exactly the order of decreasing of their ratings.

      So, this feature is already implemented. Just look on the list of registered users before the contest and sort them by rating in descending order. Your position in this list shows your expected position in the contest.

      UPD: Nevermind, I suck at Elo-based ratings =(

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +11 Проголосовать: не нравится

        This is not correct:) Your expected position depends not only on your position in list, sorted by rating, but also on all other ratings.

        If top1 has rating 3000, and all other contestants have rating 1000, then his (top1) expected place is very close to 1.0. But if top1 has rating 3000, and all other have rating 2999, then I am not so sure that top1 will win this contest:) And his expected place is actually close to n/2:)

        You proposed easy approach to calculate expected position in standings, but it is not right Elo-based way. BTW, tourist can never get + rating for 2nd place with this approach, because his expected place will be 1st:)

        To get correct expected place one should calculate Elo-based probabilities of losing versus every other contestant and add these values (and also add 1 to result, because standings are 1-based).

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          =( Yes, second example shows that I'm completely wrong about expected place, sorry.

»
10 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

As at TopCoder all users are divided into two divisions: the first (rating over 1650) and the second (rating_ not more than 1650). Not rated users fall into the second division automatically.

MikeMirzayanov , it should be 1700.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    exactly what i meant in my comment.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      I don't know why you got so much downvote in that comment . it makes no sense . i didn't see your comment before . i just gave a upvote . but what can just a little upvote do against 61 downvotes ? :(

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

umm.. can you please tell me how you calculate change in rating after a contest on the basis of his standing?

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Rating formulas aren't public in CF. And even if you would have them, I doubt you could calculate rating change faster than CF servers would do. It's a quite heavy operation, I think.

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Как считается рейтинг стран/городов/организаций?

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +20 Проголосовать: не нравится

    То есть твой вклад в рейтинг города = 3.6e-13

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Как вклад может быть отрицательным? Отчего он уменьшается?

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Есть "нравится" и "не нравится". Другие члены сообщества голосуют как-то за твой блог/комментарий. Существует еще некая функция f(x), которая отвечает на сколько повысить/понизить твой вклад. Если многим не нравится твой блог/комментарий, ты получишь какой-то минус ко вкладу и он[вклад] может быть меньше 0.

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

What is a reason for leaving rating unchanged of guys who have registered for a contest but do not make any submissions? Is that because people may not handle with time and just late for the contest? Come on, really? I suppose majority of people are not so silly. Also, they can register right before the contest if they decide to participate. In addition, it's normal in sports people get the worst results if they ignore the contest they are registered for.

However, it provides ways for cheating. For example:

  • register for contest
  • try to solve C(or even more complicated problem, depending on level)
  • if C is solved and participant is sure it will be accepted:
    • submit C
    • solve A and B
    • get a lot of rating
  • else:
    • do not submit anything

Results: lots of rating in best cases and nothing in worst ones => expected value of rating is more than actual level.

Proof: in Codeforces Round 286 (Div. 1) problem A was relatively complicated. As a result, more than usual number of out-of-participation guys was even mentioned in editorial.

Guys, you all believe that one half of people registered for all div 2 contests do not participate because they are late for them? It's ridiculous. I suppose, most of them do not have an evil plan like described above but they just find problems complicated and decide do not risk that is unfair too.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    Strongly agree with you: "take a look at the problems => welcome to the standings"
    It's the ancient problem.
    Several month ago, it was interesting for me to analyze registered vs participated vs notParticipated vs isOnline lists in Div1. As a result, there were many participants, who registered, was online during at least half of the contest, but not participated.

  • »
    »
    10 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    agree , i think a good alternative is TC system , the timer start counting when you open the problem and if you opened any problem your rating will be changed .

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Yes , but this might encourage cheating . 1) Register another account 2) Login & enter DIV.2 contest 3) Read DIV2-C .. DIV2-E problems 4) Decide, login main account or not

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится

        One of best ways to prevent cheating is rating penalties for registered coders if they do not submitting anything. Not cruel, approx. -10 pts. If there is coder that cannot take part and unable to unregister because of force majeure, this one-time penalty will not affect seriously, but if coder try to cheat, he will receive this penalty regularly, time after time, losing rating points. Also, more cheaters -> more penalties -> more rating boost for non-cheating coders, because sum of ratings before and after contest is constant.

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

          In my opinion, it's an extremely unefficient solution because benefit of cheating in average is much greater than 10 pts. I suppose the best way is consider all the registered coders participating. Why? TC system may not work here because problems are shared for both divs. I think people who feel force majeure may happen should register right before the contest. In fact, they even can do it all the time :) Also, one failed contest due to time management issues per long peroid(in fact, in contest a lot of other bad luck cases may happen) will not ruin your rating completely because Elo-based system "helps" you to grow if your rating is less than actual level.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I solved a problem in "Codeforces Round #332 (Div. 2)", but my rating is not changed.... Would you please let me know why it happens?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    it takes about two hours after the contest to get the rating change

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I'm new in codeforces. today i solved one problem . after the round i checked my profile and saw "Unrated" why ?

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А можно заранее вычислить свой "seed" чтобы заранее знать сколько надо набирать чтобы быть в плюсе?

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    seed -- это мат.ожидание места. Про заработанные очки здесь ни слова не сказано.

    Допустим, тебе нужно занять первое место, чтобы быть в плюсе. Первое место можно занять и с 1 заработанным баллом. Но существует также и случай, когда тебе необходимо набрать очень много баллов, решив все задачи, причем очень быстро. Всё зависит от того, как твои соперники выступят, а не только от твоего выступления.

    • »
      »
      »
      8 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Так вот о чем я) я хочу знать минимальное место в общем рейтинге, при котором я буду в плюс, а не количество баллов.

      • »
        »
        »
        »
        8 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        Я не о том говорил, действительно))
        Seed вычисляется для каждого участника, и вот если бы КФ предоставил эти сведения...
        З.Ы. Стоп, а не после ли контеста считается seed? Seed зависит от твоих соперников, а они могут послать решения хоть на последней секунде, таким образом появятся в таблице рейтинга. Этого, к сожалению, никак не вычислить...

»
8 лет назад, # |
  Проголосовать: нравится -18 Проголосовать: не нравится

.

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Hi. Today i solved one problem in a contest. But my rating still shows Unrated. Why?

»
6 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

I recently appeared a contest and solved one problem but my profile isn't reflecting the contest details I. e., my profile is showing that I haven't yet appeared for any contest

»
6 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

What if you take a virtual contests? do you get any rating?

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I participated in the Codeforces Round #586. I solved one problem A and all the pretests were accepted. Then I tried to solve Problem-B,But failed in one of the test-cases. After evaluation was done, I got to know that my code was accepted and I got 366 as my score for the problem. Though, there was a '-1' for Problem-B. I thought my rating would have got increased a little, atleast. But instead, it got decreased. A '-74' in my rating. Can you tell me why this happened? And Where did the 366 I scored go?

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    The sum of points in all the problems is used to sort the participants and form the ranking. Your rating change is calculated based solely in your position in the ranking and the expected position according to the rating you had before the contest.

    I.e. the points you get per problem are discarded after the ranking is formed.

»
5 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

It seems that the system has been updated, and now the sum of ratings decreases after contests. For example, in Codeforces Round 564 (Div. 1), the total rating delta is -969.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Кажется, что в этом посте не достает информации про Div.3. Возможно, это информация известна всем, кто регулярно заходит на сайт, но хотелось бы иметь актуальную информацию в разделах помощи.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

my rating is 423 after giving 1 contest . Is that fine ?

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Does the average rating stays around a exact number?

Or in other words, is $$$\Sigma\Delta$$$ in each round around 0?

I'm new in codeforces :)

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится -11 Проголосовать: не нравится

    Jesus fucking christ don’t fucking necropost a 10 year old blog if there’s a much more recent one discussing ratings.

    New to codeforces isn’t a fucking excuse because every single fucking forum discourages necroposting.

    • »
      »
      »
      4 года назад, # ^ |
      Rev. 3   Проголосовать: нравится +6 Проголосовать: не нравится

      But does Codeforces discourage it? I don't think so.

      Also, when you are new to a site like this, how does he even find the newer blog.

      He probably just googled some keywords, stumbled on this blog, and commented. You are discouraging a newcomer to the site, just because he commented on a blog you didn't even own, you are too lazy to answer him but too eager to trash talk.

»
4 года назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

I achieved rating 443 after my first contest global round 8 in with held yesterday but my friends started with initial rating of about 1500 but for me it was 0. Why?

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Раньше я решал одну задачу за раунд, теперь уже две — это рост, но рейтинг так не считает... Получается рейтинг отображает не мой личный рост, а позицию относительно участников, соизволивших посоревноваться?

  • »
    »
    4 года назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Изменение рейтинга в разных соревнованиях может быть очень разным даже при схожем количестве решенных задач. Грубо говоря так: если задачи простые (т.е. их быстро решает много людей), то в рейтинге они "стоят" дешевле, чем если задачи сложнее (т.е. их решает не так много людей и не так быстро).

    Кроме того на рейтинг влияет время, за которое решены задачи, штрафы, взломы... Рейтинг обсчитывается по положению относительно других участников. Все, что влияет на положение — влияет и на рейтинг.

»
3 года назад, # |
Rev. 2   Проголосовать: нравится -20 Проголосовать: не нравится

1

»
3 года назад, # |
Rev. 3   Проголосовать: нравится +2 Проголосовать: не нравится

"if the participant A had worse rating than the participant B before the contest and finished the contest on the worse place then after recalculations the the rating of A can’t be greater than the rating of B". Then can someone please explain to me how Honey_Cheerios got a higher rating than Ravsteel even though the former had a lower rating than the latter and both finished with the same rank in Codeforces Round 781?

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    this blog is 12 years old.....

    Also, you get a bonus rating just for participating in your first 6 contests. Which sums up to 1400 or 1500.

»
23 месяца назад, # |
Rev. 8   Проголосовать: нравится -37 Проголосовать: не нравится

Good Luck Guys<3

»
21 месяц назад, # |
  Проголосовать: нравится -23 Проголосовать: не нравится

How is the correction factor found?

»
14 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is there an query in api for getting current cf rank(current rating based rank)

»
14 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Do we get rating by participating in Gym?

»
12 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

That's CRAZY! This blog was written 14 years ago!

»
11 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Good morning I'm Harsha Vardhan from Hyderabad, India I want to tell you one thing, someone logged into my codeforces account and my name is corrupted and my score is zero. I have not done this work please see that I am asking you to return my score and rank.
This kind of work will be done again. I think someone who doesn't remember my account logged in and did this, they want to block my account, I think and they want to delete my name too. This is the first and last chance it won't happen again i will promise to you please trust me and return the score i kindly requested to you. Thanking you yours faithfully CMRIT25_21R01A0426

»
5 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is it relevant now?