この記事は2023年11月30日に更新いたしました。
初めまして、ごごちと申します。
今回は競技プログラミング最大手のAtCoderにて、
Ratingが上位何パーセントにあたるか一目でわかるグラフを作成しました!
自分が参加者のなかでどれくらいの順位なのか、参考にしていただけると幸いです!
(2022/8/31追記)
より正確かつ効率的に早見グラフを作れる様にしました!コメントくださった方、ありがとうございます!
AtCoderの順位ヒストグラムのソースから上位何パーセントかわかる早見グラフをPythonで作ってみた
上記コードを使ってランキングページのHTMLからグラフを作れるようになったので、定期的に更新しようと思います!
(2023/6/1追記)
スクレイピングプログラムを作成し、
定期実行によってログ取得できるようにしました。
順位ヒストグラムの定期スクレイピングによるログ作成!【AtCoder】【レーティング分布】
今後はログ取得して分布の推移を見てみたいと思います!
(2023/7/31追記)
レーティング分布のログから、
分布の時系列変化を可視化しました。
AtCoderのレーティング分布の時系列変化をグラフにしました(随時更新予定)
2024/3/31 更新
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2023/11/27 更新
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2023/9/19 更新
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2023/6/1 更新
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2023/3/13 更新
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2022/12/3 更新
上位パーセントの割合は、6月時点からあまり変わっていないようです。
参加者数も増えているようなので、分布が平衡状態になっていると考えられます。
全参加者
上位パーセント(全レーティング対応)
上位パーセント(レーティング1200未満対応)
上位パーセント(レーティング1200以上対応)
2022/6/19 時点
Ratingごと上位%早見グラフ
全レート対応
こちらがAtCoderのヒストグラムを目視トレースし手作業で作った
レートごとのユーザ数ヒストグラムと上位%の折れ線グラフです
このグラフで、各レートと上位%がわかります!
上位50%以上(Rating 72以下)
こちらはRating 72以下、上位50%以上のグラフです。
このグラフからわかることは
- Rating4以下に1割のユーザがいる
- Rating72まででおよそ5割のユーザ数をカバーしている
Rating4以下のユーザは
参加回数1回かつ、submitもしていない
のような感じだと思います。
なので、複数回参加してsubmitするだけでも上位90%にはなれそうです。
上位50%以下(Rating 89以上)
こちらはRating 89以上、上位50%以下のグラフです。
このグラフからわかることは
- Rating147が最頻値で上位40%
- 茶色(Rating400)でも上位26%
最頻値であるRating147が達成できそうなシチュエーションは
コンテストに3-4回参加し、B問題まで半分位の割合で解く
のようなことが考えられそうですね。
AtCoderも全ての人が複数回続けられる訳ではないので、
初めはうまく出来なくても、複数回参加するモチベーションが重要ですね。
作った経緯や筆者の順位、つくって気づいたことなど
作った経緯 : 自分の順位と上位パーセンテージをわかるようにしたかった
こちらはAtCoderのプロフィールから見られるヒストグラムです
こちらのヒストグラムでは、自分の順位しかわからず、
上位何パーセントかがよくわかりませんでした。
なので、ヒストグラムを目視でトレースして
上位パーセントを数値化してみました。
より正確かつ手軽にわかる方法がございましたら、
是非コメントで教えてくださいm(_ _)m
筆者の成績と順位について
筆者はレーティング536で順位は23882です。
全ユーザ数98270と見積もったため、
23882/98270 = 0.24
上位24%である事がわかります。
棒グラフの数値と大体合っていますね。
作ってみてわかったこと
複数回参加してsubmitすれば上位90%以上になれる
Rating4以下に1割のユーザーがいるようで、
こういったユーザは
1回だけ参加してsubmitもしなかった
事が考えられます。
まずは複数回参加してsubmitするだけでも上位90%になれそうですね
灰色でもRating 100あれば上位50%
灰色でもRating89の時点で上位48%なので、
Rating100を超えるだけでも上位50%になれます。
これはコンテストに毎週参加してA問題を解き続けるだけで達成できそうです
茶色(Rating 400)になった時点で上位26%
茶色レートである400担った時点で、上位26%になれる様です。
作ってみるまでは筆者は、「茶色レートで上位50%」
と思っていたので、茶色になるだけでも上位4分の1になれる様です
もっと簡単に見られる方法をご存じでしたらご教示ください
今回はAtCoderのレーティングと上位パーセント早見グラフを作成しました。
皆様の参考になれば幸いです
今回はHistgramを目視とレースして手作業でグラフを作ったので、2時間くらいかかりました。
もっと簡単に見られる方法をご存じの方がいらっしゃったら
ぜひコメントなどでご教示くださいm(_ _)m
また、筆者は資格試験の勉強記事も書いております。
令和4年度春期試験の応用情報技術者試験の自己採点結果を(いまさら)公表します
よかったら見ていってください♪
確かに数値化して目に見えるとモチベーションが上がりますね^ ^
ヒストグラムの数値はHTMLソースを見ると配列で書かれているので(var xaxis= …)それを使えば手間が減るかと思います
ありがとうございます!トライしてみます!