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

Автор vkgainz, история, 4 года назад, По-английски

Hello Everyone,

Are the seeds for the contests on CF-Predictor calculated correctly?

On a recent contest: many users (such as me) ended up getting negative delta even though we got a lower rank than our seed (meaning we did better than "expected"), which is contradictory.

Does CF-Predictor calculate the seeds based on registered participants and not those who actually took the contest (thus making it a bit inaccurate) or are rating changes a bit off for codeforces?

  • Проголосовать: нравится
  • +20
  • Проголосовать: не нравится

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

Auto comment: topic has been updated by vkgainz (previous revision, new revision, compare).

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

The avg delta in div1 is -12. The avg delta is div2 is +40(This includes new accounts).

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

    the average delta in div2 is still negative overall (it was also around -10 last time I checked), it is just because of the initial rating gains that make it look positive.

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

    Oh wow, didn't know that. Did you find this out by looking at past data or was there a post somewhere? As far as I know the last rating explanation post was made like 5 years ago.

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

      Just run this and input contestID

      import codeforces_api
      API = "https://codeforces.net/api/"
      cf_api = codeforces_api.CodeforcesApi()
      contestid = int(input())
      ratingchanges = cf_api.contest_rating_changes(contestid)["result"]
      totaldelta = 0
      for ratingchange in ratingchanges:
          newrating = ratingchange["newRating"]
          oldrating = ratingchange["oldRating"]
          totaldelta+=newrating-oldrating
      print(totaldelta)
      print(totaldelta/len(ratingchanges))