ac-predictor

コンテスト中にAtCoderのパフォーマンスを予測します。

נכון ליום 12-02-2022. ראה הגרסה האחרונה.

יוצר
keymoon
דירוגים
0 0 0
גרסה
1.2.15
נוצר
01-07-2018
עודכן
12-02-2022
רישיון
MIT
חל על

おことわり

外部との通信について

このスクリプトは、外部のサーバーと通信を行っています。通信は以下の用途のみで使用しております。

このデータについての詳細や、外部から取得する必要性については詳細をお読みください。データの取得のみを行っているため、これによってアカウント情報や提出等のデータが送信されることはありません。

詳細 技術的な詳細(2020 年 12 月現在)は、ac-predictor を支える技術 - Qiitaにて公開しています。そのうち外部との通信に関連する部分について抜粋し、以下に概要を記します。

スクリプトが外部サイトと通信する必要性について

パフォーマンス予測のためには、参加者全員の過去パフォーマンスから計算される APerf と呼ばれる値が必要になります。
この値を各利用者個別で取得する場合、それぞれが参加者全員分(=10000回ほど)のリクエストをすることとなります。 負荷の問題等も鑑み、そのリクエストと APerf の計算を一括で代行した後、それを配信するという形式を採用しています。

APerf について

APerf とはパフォーマンス計算にて用いられる特殊なレートで、過去のパフォーマンスの加重平均によって求められます。詳しくはAtCoderのレート計算式 - Qiitaを参照してください。(この記事で「内部レート」と呼ばれているものです)

ソースコードについて

このスクリプトは 1000 行程度のコードで構成されています。これはツールを用いて複数ファイルをまとめたもので、元々は別のファイルに分かれていたものです。 スクリプトの内容を確認したい場合はこちらのバンドル前ソースを読むことをお勧めします。バージョンアップのコミットの時点で npm run bundle を実行することによって、同一のスクリプトが発行できることが確認できるはずです。

機能説明

Predictor

コンテスト中/終わった後に、順位ごとのパフォーマンス、コンテスト後のレートを表示します。 順位はRated内の順位で、同順位の人数が複数人の場合はそれを加味します(3位が4人だと4.5位、5位が3人だと6位等)。レートの値は現在の自分がこのレートを取った場合の値です。 各フォーム(順位/パフォ/レート)の値を変更すると、その値だったときの他2つの値がフォームに表示されます。 自分の順位を表示したい場合は「現在の順位」ボタンを押してください。 順位表ページを見ている場合、各参加者のパフォーマンスとレートを表示する行を追加します。

Estimator

現在の自分が特定のレートになるための値、特定のパフォを取ったときのレートを表示します。機能は「入替」ボタンによってトグル可能です。

Issueは気軽にTwitter(@kymn_)等で報告して頂くか、GitHubに投げていただけると嬉しいです。