読者です 読者をやめる 読者になる 読者になる

CYCLES FUNの寝言

銀メッキな一般プレイヤーがmaimaiのRatingの解析を頑張ってみる

maimai紫のRatingと戯れる -番外1- 計算内部処理について

こんにちは。@sgimeraです。

単曲レート計算式の目途もつき、Ratingの計算式もそれなりに安定しているようなので、
今までの記事を書くことができているわけですが、
実際のところ、計算結果と実Ratingに0.01の差が出ることが数回ありました。
内部難易度を予測するだけであれば複数のデータをもって計測誤差として処理できますが、
Ratingを計算しようとするとこのまま放置はできません。

今回は、そのあたりを見ていこうとを思います。

注意:
今回の話は、内部難易度やレート値とは直接関係しません。
あまりにマニアックな話なので、興味のある人以外は読んでも面白くないです。
別ページを眺めて、レートの予想のミスを探したほうが有意義です。

マイテック紫のデータで検証

S検証の過程で、マイテック(Hyper Active)紫10連奏をやりました。
下記はその結果と、現在の式で算出されたレート値、それらを使ったBest、Recent、算出Ratingとなります。
なお、マイテック紫は3.89枠の譜面です。

達成率 Rating 算出
レート値
BEST枠 RECENT枠 算出
Rating
98.61 0.64 14.12 0.32 0.32 0.64
98.61 0.96 14.12 0.32 0.64 0.96
98.63 1.28 14.13 0.32 0.96 1.28
98.79 1.60 14.22 0.32 1.28 1.60
98.40 1.92 14.00 0.32 1.60 1.92
98.38 2.24 13.99 0.32 1.92 2.24
98.29 2.56 13.94 0.32 2.23 2.55
98.66 2.88 14.15 0.32 2.56 2.88
98.56 3.20 14.09 0.32 2.88 3.20
98.93 3.52 14.31 0.32 3.20 3.52

御覧の通り、7回目の計算結果がずれてます。

おそらくは、色々切り捨てすぎた結果かと思いましたので、
まずは、単曲レート値の切り捨てをやめました。
…が、やはり7回目が2.55のままです。

現在の計算は、BEST枠、RECENT枠とも、最終結果を小数第3位以下で切り捨ててますので、
切り捨てずに表示してみます。(表示上小数第6位まで)

達成率 Rating 算出
レート値
BEST枠 RECENT枠
98.61 0.64 14.125750 0.321040 0.321040
98.61 0.96 14.125750 0.321040 0.642080
98.63 1.28 14.137250 0.321301 0.963381
98.79 1.60 14.229250 0.323392 1.286773
98.40 1.92 14.005000 0.323392 1.605068
98.38 2.24 13.993500 0.323392 1.923102
98.29 2.56 13.941750 0.323392 2.239960
98.66 2.88 14.154500 0.323392 2.561653
98.56 3.20 14.097000 0.323392 2.882040
98.93 3.52 14.309750 0.325222 3.207261

…桁が多いと見づらいですね…
ここで、7回目のRECENT枠に注目します。
2.239960
これを小数第3位以下切り捨てだと2.23となりますが、限りなく2.24に近いです。
ここが2.24になれば7回目の算出Ratingは2.56となり、無事(?)にRatingが算出できます。

もう一例。せかいせいふく紫→おわた紫→あわれなり赤

12のSSSの行方の調査の後半は、1枚のカードで複数枚やってました。
その時のデータが下記になります。

  • ありふれたせかいせいふく(3.49枠) 3回
  • オワタ(3.54枠) 3回
  • あわれなり赤(3.24枠) 4回

条件としては、

  • レート値は切り捨てなし(編集上、小数第6位以下切り捨て)
  • BEST, RECENT, HISTORYも計算結果の切り捨てなし(編集上、小数第6位以下切り捨て)
  • 算出Ratingは、BEST, RECENT, HISTORYの小数第3位以下を切り捨てた値の合計
達成率 Rating レート値 BEST枠 RECENT枠 HISTORY枠 算出
Rating
99.37 0.6 13.27750 0.30176 0.30176 0.00316 0.60
99.23 0.9 13.17250 0.30176 0.60113 0.00316 0.90
99.14 1.19 13.10500 0.30176 0.89897 0.00316 1.19
100.12 1.84 14.20000 0.62448 1.22170 0.00655 1.84
99.36 2.14 13.47000 0.62448 1.52784 0.00655 2.14
99.34 2.45 13.45500 0.62448 1.83363 0.00655 2.45
99.14 2.99 12.10500 0.89960 2.10875 0.00944 2.99
99.16 3.28 12.12000 0.89994 2.38420 0.00944 3.27
98.60 3.54 11.60000 0.89994 2.64784 0.00944 3.53
98.96 3.81 11.73500 0.89994 2.91454 0.00944 3.80

あわれなり2回目以降、表示Ratingと算出Ratingがずれてます。

注目は、BEST枠です。
あわれなり赤2回目以降、BEST枠が0.89994と、限りなく0.90に近い値です。
もしこれが0.90となれば、めでたく成立しそうな情勢です。

そのため、小数第3位以下を四捨五入としたいところではありますが、
それだと1回目の時点で0.90となり、それはそれでだめな状態に…

さて、どうするか。

中の人ではありませんので、完全に予想となりますが、
小数第5位以下を切り上げる
という、とんでもないものをぶち上げることにします…
切り捨てではなく切り上げるです。

こうすると、
0.89960 -> 0.8996 -> 0.89
0.89994 -> 0.9000 -> 0.90
2.23996 -> 2.2400 -> 2.24
となり、なんとなく万々歳…

小数第5位以下を切り上げ、とした(無理やりこじつけの)理由としては、
達成率も、Ratingも小数第2位までだから、それぞれ100倍してから計算して、
小数以下を切り上げているのではないか、というものです。
(つまり、整数で計算して、小数以下の部分を切り上げているに等しい。)

この辺りはSEGA様が公開してくれることはないので予想の域を超えることはありませんが、
Ratingの計算式の神髄(というよりはコンピュータ内部処理?)にまた一歩近づけたかもしれません。

…ただの自己満足です。はい。

当たり前だけど転載禁止。
NAVER辺りが転載したら色々請求する。