# 音ゲーの難易度推定 ユーザーのレーティング ###### tags: `音ゲーの難易度推定` ## 対戦の順番は大事 ユーザーiが正規分布に従う実力p[i]を持っている場合に、全体でN*(N+1)/2回の対戦を行った後のレーティングの様子 ![](https://i.imgur.com/mHXz38M.png) 最後の人のレートがひどいことになっている これはそうで、真のレート差が400だけある二人の対戦が初戦なら1500-1500のレートの分け合いになるけど、終盤だと1700-1300の分け合いになる。同じ勝利でももらえるレートが異なるので順番をシャッフルしないといけない 順番をシャッフルするときれいな正規分布の形になる ![](https://i.imgur.com/RkCgbir.png) ## あるユーザーをゴーストとしてそのユーザーとの勝率からレーティングを計算すれば良い? 微妙 あるユーザーが埋めていな譜面は無効対戦になるので良くない ## 数学 $R_{1}$ と $R_{2}$ のレートをそれぞれ持つユーザー同士の勝率を求める関数 $g$ を次のように定義 $$ {\displaystyle g(R_{1}, R_{2})={\frac {1}{10^{(R_{1}-R_{2})/400}+1}}} $$ ユーザーAはユーザーBとユーザーCに勝利、ユーザーBはユーザーCに勝利、ユーザーCは0勝というケースを考える ## お手紙 はじめまして https://riceplace.hatenablog.jp/entry/2020/10/03/164936 の記事を参考に BMS の譜面の難易度推定に取り組んでいるものです ↑の記事の「レーティングシステム」の章について質問があるため DM させていただきました イロレーティングを算出するための勝率の計算を行ったとのことですが、この勝率はあるプレイヤーが他の全プレイヤーに何勝したかをカウントし、勝数/(ユーザー数-1)を計算した、という認識であっていますか? https://twitter.com/odan3240/status/1564214528367534081 ## 引き分けを0.5勝利扱いする ### before ![](https://i.imgur.com/xgz2j0m.png =x320) ![](https://i.imgur.com/SvxJs9h.png =x320) ### after ![](https://i.imgur.com/LiBCrRD.png =x320) ![](https://i.imgur.com/oQwsM5g.png =x320) ## リファクタリングした ![](https://i.imgur.com/gpUwY1X.png =x320) ![](https://i.imgur.com/Qr0KnLE.png =x320) ## failed を no play 扱いしてなかったわ ★25などの高難易度に特攻して失敗したやつが不利扱いになるのは厳しい クリアしないとこれは消せないし 難しい曲をやらんほうがいいのは違う けどこの方式だと easy はあいこにしかならない なのでこのレーティングは normal クリア以上のランプを点けられる実力があるか?を示した値になる ![](https://i.imgur.com/XXHQQF3.png =x320) ![](https://i.imgur.com/LxbzB7a.png =x320) ## 譜面ごとの勝敗をベースにレートを求める ![](https://i.imgur.com/jxjJkAu.png) ![](https://i.imgur.com/PdnuAys.png)