Growth Record of Lettuce Farm

競プロの記録・解説をします

Codeforces の新レーティングについてまとめてみた

初めまして。最近競プロ頑張ってるれたすです。
日本語文献が一切無さそうな、Codeforcesに最近適用された新しいレーティング算出方法についてまとめようと思います。Codeforcesって色んな情報をまとめるのが不便なので大変ですよね……。

出典: Codeforces: Soon We Will Change the Rating Calculation for New Accounts

概要

新しくCodeforcesに参加するアカウントには初回6回のコンテストに限り表示レートにマイナス補正が掛かるようになります(AtCoderのレートに掛かるいわゆるリセマラ補正みたいなもの)。マイナス補正は回数を重ねる毎に少しずつ小さくなっていって6回目の参加でゼロになります。

原文の翻訳

まず英語で書かれている内容をざっくりと邦訳していきます。正確ではなくある程度噛み砕いた雑な訳なので、誤訳や適切な訳があればコメントでご教示下さい。

レート計算の具体的な方法

  • The rating of the new account will be equal to 0 for display (but it will be equal to 1400 when calculating rating changes).
  • 新しいアカウントの表示レートは0、内部レートは1400になります(ここで内部レートとは、レートの計算に使うレートのことです)。
  • Suppose, after the first round, the participant gained d_1 rating points (remember that the rating was considered equal to 1400 in such calculations), then in the rating display after this round 500+d_1 will be displayed. Thus, after the first participation, the rating is likely to increase from 0 to a value in the region of 500 (plus or minus 300 approximately).
  • Thus, before the second participation, the displayed rating is 500+d_1, and the rating for calculating changes is 1400+d_1. Suppose a new change is d_2, then the displayed rating becomes 500+d_1+350+d_2.
  • Thus, before the third participation, the displayed rating is 500+d_1+350+d_2, and the rating for calculating changes is 1400+d_1+d_2. Suppose a new change is d_3, then the displayed rating becomes 500+d_1+350+d_2+250+d_3.
  • And so on the first 6 rounds. Promotions of the displayed rating will be equal to 500,350,250,150,100,50 (in total exactly 1400). Therefore, after participating in 6 rounds, the rating is “stabilized” and the displayed rating will be equal to the one used to recalculate the changes.
  • 最初に参加したコンテストで内部レートがd_1だけ増え、1400から1400+d_1に変わった場合、そのコンテスト後の表示レートは0から500+d_1になります。
    • 最初の参加後にレートはおよそ500\pm 300程度になります。
  • 2回目に参加するコンテストで内部レートがd_2だけ増え、1400+d_1から1400+d_1+d_2に変わった場合、そのコンテスト後の表示レートは500+d_1から500+d_1+350+d_2になります。
  • 同様に、3回目に参加するコンテストで内部レートがd_3だけ増え、1400+d_1+d_2から1400+d_1+d_2+d_3に変わった場合、そのコンテスト後の表示レートは500+d_1+350+d_2から500+d_1+350+d_2+250+d_3になります。
  • そして最初の6回におけるレートの上昇は500,350,250,150,100,50です。6回の合計は1400になるので、6回コンテストに参加した後の表示レートはレートに計算に使っていたレート(内部レート)に等しくなります。

つまり、最初の6回の表示レートは実際の値よりそれぞれ900,550,300,150,50,0だけ低い値が表示されるということです。

計算式変更の利点

このレート変更で、以下のような利点がありそう……らしいです。

  • We are reducing the starting rating from 1500 to 1400, so that new accounts make a smaller contribution to the overall rating.
  • 新しいアカウントの推定レートが1500から1400に減るので、全体のレートのインフレを若干抑えられます。
  • Currently, especially for inexperienced participants, there is an effect that their rating at the beginning of participation is constantly falling (from 1500 to the value that is a true assessment of their skills). This, of course, leads to discomfort: you try, participate, solve some problems, but the rating drops.
  • 今までは初心者がコンテストに参加した時、レートが1500から真の実力のレート値になるまでずっと下がり続けてしまうので、やる気が削がれてしまいかねませんでした(が、単調増加するので少し良くなります)。
  • The previous paragraph gives additional motivation to create new accounts. If your current rating is less than 1500, then there is a temptation to start from scratch with a fresh account. After the changes, such a start will require a noticeable long-term effort to climb at least your current rating. It seems that the changes should slightly reduce the motivation to create new accounts.
  • 初参加でレートが下がるということは、初めて参加してレートが1500よりも低かったら新しいアカウントを作って上振れを引くまでリセマラしようという考えになるかもしれないので、リセマラ封じになりそうです。

適用対象の基準

この新しいレート計算式は2020年5月24日(日本時間)に開催された、Codeforces Round #644 (Div. 3)から適用されました。当初はDiv. 4の予定だったものが問題のセットがDiv. 3に適しているということで急遽Div. 3での開催に変更された上、レート計算式の変更の予告はこのDiv. 3の予告よりも後であったのにこの回から突然新計算式が適用されたというちょっと波乱の回でした。
ちなみに私が初参加したCodeforcesのコンテストだったので、新レーティング計算式の最初の適用者になってしまったらしいです。アカウント自体は昔から作っていたので、アカウント作成時点ではなくコンテストの初参加が件のDiv. 3以降なら適用みたいです。

実際どういう感じで変化するの?

私のレート変化を参考までに貼っておきます。

f:id:fairy_lettuce:20200624151735p:plain
レート変化グラフ
f:id:fairy_lettuce:20200624151848p:plain
6回のコンテストの結果
こんな感じです。表示レートはそれぞれ699,1134,1351,1554,1611,1676ですが、内部レートは1599,1684,1654,1704,1661,1676という感じですね。私は初回から温まっているのであまり実感としては無いけれど、結構上下してるのがマイナス補正のおかげで単調増加になっているので確かにモチベは保ちやすくなりそうです。