【雑記】OP算出中の丸めについて

OVER POWER算出時におけるプレイレートの丸めについて

 OVER POWER(以後OP)の算出には、SSS以上の時も値が変化するプレイレートを用います。便宜上、このプレイレートのことをここでは拡張プレイレートとでも仮称しましょう。
 「そもそもプレイレートってなんだよ」という方は、次を御覧ください。
max-eipi-chunithm-rating.hatenablog.com

 通常のプレイレートは小数第3位以下を切り捨てていることが広く知られています。
 では、OP算出時に用いられる拡張プレイレートは、一体小数第何位まで有効なのかを調べるべく、とある方からデータを頂きました。
 次のスプレッドシートはそのデータを解析するために作成したものです。
docs.google.com
 シートの見方

  • (A列,B列,C列)=(譜面定数,スコア,ランプ補正)より、(D,E,F)=(拡張プレイレート,素点,OP)が算出されます。素点とは拡張プレイレートとランプ補正の和のことです。
  • G列を初期状態(上6曲がプレイ済み)として、1曲目、2曲目、3曲目…とプレイしていったときに、表示OPが一体どのように変動しているかが下に示されています。
  • 21行目(合計)は各列のOPの総和を、22行目(合計[.##])は21行目の値を、実機で表示されている桁数に合わせるために小数第3位以下を切り捨てた値です。

 ここでは、OP=(素点をセルB2で定義している値を基準に切り捨てた値)x5 という計算式でOPを算出しています。
 B2の値が0.01であれば小数第3位以下を切り捨て、0.001なら第4位以下、0.0001なら第5位以下と言った具合に素点を切り捨てています。
 試しにこの値を0.001にする(=小数第4位以下切り捨てにする)と、22行目と23行目の値が全く一致しませんでした。
 次に、0.0001にする(=小数第5位以下を切り捨てにする)と、22行目と23行目が完全に一致しました。

考察

 先述の調査結果から、拡張プレイレートは少なくとも小数第4位まで有効なのではないかと推測しました。
 あるいは、素点の時点で小数第5位以下に値を持たないことから、切り捨てすら行われていないのではないかと見ることもできます。
 また、過去の検証から、Sランク未満では拡張プレイレートは小数第3位以下を切り捨てているという推測を立てています。
 これらをまとめて、OP算出時に使用される拡張プレイレートの丸めについて次のように推測しました。

OP算出時に用いる拡張プレイレートは、

  • Sランク未満 ⇒ 小数第3位以下を切り捨てている
  • Sランク以上 ⇒ 小数第5位以下を切り捨てている(あるいは切り捨てられていない)