IIDXとEZ2ONは判定幅もスコア計算も異なるため、スコア率をそのまま比較することは難しいです。 そこで、入力タイミングのズレが同じ分布に従うと仮定し、そのときに両ゲームで期待されるスコア率を計算して相互に換算します。
なお、計算や数式の整理にはChatGPTを利用しています。 自分は統計に詳しいわけではないため、考え方や計算に誤りがあった場合はご容赦ください。
前提
入力タイミングのズレを とし、平均0msの正規分布に従うと仮定します。
ノート数は十分に多いものとし、スコア率は期待値で計算します。
これは実力そのものの換算ではなく、入力タイミングのズレだけを同じ標準偏差でモデル化した場合のスコア期待値の換算です。 EARLY/LATEの偏り、曲中でのブレ、認識難による外れ値などは考慮しません。
判定幅は以下を参照しました。
- IIDX: Gauge Calculation and Timing Windows | beatmania IIDX guide
- EZ2ON: Sudden Death(EZ2ON) - NamuWiki
IIDXの判定と配点
| 判定 | 範囲(ms) | 点数 |
|---|---|---|
| PGREAT | 2 | |
| GREAT | 1 |
EZ2ONの判定と配点
EZ2ONの計算では、各判定の実際の点数ではなく、KOOLを1としたときのスコア率への寄与として扱います。 つまり、KOOLを100%、COOLを70%、GOODを20%として計算します。
| 判定 | 範囲(ms) | スコア率への寄与 |
|---|---|---|
| KOOL | 1 | |
| COOL | 0.7 | |
| GOOD | 0.2 |
標準正規分布による計算
標準正規分布の累積分布関数を とします。 は、標準正規分布に従う値が 以下になる確率を表します。
入力タイミングのズレ を標準偏差 で割って標準化したものを とします。
このとき、 は平均0、分散1の標準正規分布に従います。
このとき、
です。 したがって、 が に収まる確率は、 が に収まる確率として計算できます。
IIDX側の確率
PGREAT率
GREAT率
したがって、
EZ2ON側の確率
KOOL率
COOL率
GOOD率
したがって、
換算方法
片方のゲームのスコア率を指定し、そのスコア率を満たす を数値的に求めます。 求めた をもう片方の式に代入して換算します。
たとえば、IIDXのランクAAAの場合、
です。
を満たす を、以下のPythonコードを使って求めます。
import math
def Phi(x):
return 0.5 * (1 + math.erf(x / math.sqrt(2)))
def p(a, sigma):
return 2 * Phi(a / sigma) - 1
def iidx(sigma):
return p(16.67, sigma) + 0.5 * (p(33.33, sigma) - p(16.67, sigma))
def ez2on(sigma):
return (
p(22, sigma)
+ 0.7 * (p(55, sigma) - p(22, sigma))
+ 0.2 * (p(110, sigma) - p(55, sigma))
)
def inv(fn, target):
lo, hi = 1e-9, 1000.0
for _ in range(200):
mid = (lo + hi) / 2
if fn(mid) > target:
lo = mid
else:
hi = mid
return (lo + hi) / 2
sigma = inv(iidx, 8 / 9)
score = ez2on(sigma)
print(sigma) # 13.298675800799273
print(score) # 0.9705623411040285
この結果、
となり、
となります。
換算結果
IIDXからEZ2ON
| IIDXスコア率 | IIDXスコア率(%) | (ms) | EZ2ON換算 | 備考 |
|---|---|---|---|---|
| 66.6666% | 約24.41ms | 約87.77% | IIDX A | |
| 72.2222% | 約21.41ms | 約90.37% | IIDX AA- / EZ2ON S相当 | |
| 77.7777% | 約18.63ms | 約92.71% | IIDX AA | |
| 83.3333% | 約15.97ms | 約94.92% | IIDX AAA- / EZ2ON S++相当 | |
| 88.8888% | 約13.30ms | 約97.06% | IIDX AAA | |
| 94.4444% | 約10.42ms | 約98.96% | IIDX MAX- / EZ2ON S+++相当 |
EZ2ONからIIDX
| EZ2ONスコア率 | EZ2ONスコア率(%) | (ms) | IIDX換算 | 備考 |
|---|---|---|---|---|
| 99.0909% | 約10.16ms | 約94.91% | EZ2ON S+++ / IIDX MAX-相当 | |
| 98.1818% | 約11.72ms | 約92.02% | ||
| 97.2727% | 約13.01ms | 約89.47% | IIDX AAA相当 | |
| 96.3636% | 約14.19ms | 約87.06% | ||
| 95.4545% | 約15.32ms | 約84.70% | EZ2ON S++ / IIDX AAA-相当 | |
| 94.3181% | 約16.70ms | 約81.79% | ||
| 93.1818% | 約18.07ms | 約78.93% | EZ2ON S+ | |
| 92.0454% | 約19.43ms | 約76.15% | ||
| 90.9090% | 約20.77ms | 約73.46% | EZ2ON S / IIDX AA-相当 |
実際には、EZ2ONの表示スコアには判定によるスコアに加えてコンボボーナスが含まれます。 コンボボーナスはコンボ数がそのまま点数に加算されるため、この計算では表示スコアからコンボボーナスを引いた値を判定由来のスコアとして扱います。 その判定由来のスコアを1100000点満点に対するスコア率に直して換算します。
以下では、500、1000、1500、2000コンボ達成時の表示スコアを、コンボボーナス加算前のスコア率に直して計算します。
500コンボ達成時
| EZ2ON表示スコア | スコア率(コンボボーナス加算前) | スコア率(コンボボーナス加算前)(%) | (ms) | IIDX換算 | 備考 |
|---|---|---|---|---|---|
| 1090000 | 99.0455% | 約10.25ms | 約94.75% | EZ2ON S+++ / IIDX MAX-相当 | |
| 1080000 | 98.1364% | 約11.79ms | 約91.89% | ||
| 1070000 | 97.2273% | 約13.07ms | 約89.35% | IIDX AAA相当 | |
| 1060000 | 96.3182% | 約14.25ms | 約86.94% | ||
| 1050000 | 95.4091% | 約15.37ms | 約84.58% | EZ2ON S++ | |
| 1037500 | 94.2727% | 約16.76ms | 約81.68% | ||
| 1025000 | 93.1364% | 約18.12ms | 約78.82% | EZ2ON S+ / IIDX AA相当 | |
| 1012500 | 92.0000% | 約19.48ms | 約76.04% | ||
| 1000000 | 90.8636% | 約20.82ms | 約73.35% | EZ2ON S |
1000コンボ達成時
| EZ2ON表示スコア | スコア率(コンボボーナス加算前) | スコア率(コンボボーナス加算前)(%) | (ms) | IIDX換算 | 備考 |
|---|---|---|---|---|---|
| 1090000 | 99.0000% | 約10.34ms | 約94.59% | EZ2ON S+++ / IIDX MAX-相当 | |
| 1080000 | 98.0909% | 約11.86ms | 約91.76% | ||
| 1070000 | 97.1818% | 約13.13ms | 約89.23% | IIDX AAA相当 | |
| 1060000 | 96.2727% | 約14.30ms | 約86.82% | ||
| 1050000 | 95.3636% | 約15.43ms | 約84.46% | EZ2ON S++ | |
| 1037500 | 94.2273% | 約16.81ms | 約81.56% | ||
| 1025000 | 93.0909% | 約18.18ms | 約78.71% | EZ2ON S+ / IIDX AA相当 | |
| 1012500 | 91.9545% | 約19.53ms | 約75.93% | ||
| 1000000 | 90.8182% | 約20.88ms | 約73.25% | EZ2ON S |
1500コンボ達成時
| EZ2ON表示スコア | スコア率(コンボボーナス加算前) | スコア率(コンボボーナス加算前)(%) | (ms) | IIDX換算 | 備考 |
|---|---|---|---|---|---|
| 1090000 | 98.9545% | 約10.43ms | 約94.44% | EZ2ON S+++ / IIDX MAX-相当 | |
| 1080000 | 98.0455% | 約11.93ms | 約91.63% | ||
| 1070000 | 97.1364% | 約13.19ms | 約89.10% | IIDX AAA相当 | |
| 1060000 | 96.2273% | 約14.36ms | 約86.70% | ||
| 1050000 | 95.3182% | 約15.49ms | 約84.34% | EZ2ON S++ | |
| 1037500 | 94.1818% | 約16.87ms | 約81.45% | ||
| 1025000 | 93.0455% | 約18.23ms | 約78.60% | EZ2ON S+ / IIDX AA相当 | |
| 1012500 | 91.9091% | 約19.59ms | 約75.82% | ||
| 1000000 | 90.7727% | 約20.93ms | 約73.14% | EZ2ON S |
2000コンボ達成時
| EZ2ON表示スコア | スコア率(コンボボーナス加算前) | スコア率(コンボボーナス加算前)(%) | (ms) | IIDX換算 | 備考 |
|---|---|---|---|---|---|
| 1090000 | 98.9091% | 約10.51ms | 約94.28% | EZ2ON S+++ / IIDX MAX-相当 | |
| 1080000 | 98.0000% | 約12.00ms | 約91.50% | ||
| 1070000 | 97.0909% | 約13.25ms | 約88.98% | IIDX AAA相当 | |
| 1060000 | 96.1818% | 約14.42ms | 約86.58% | ||
| 1050000 | 95.2727% | 約15.54ms | 約84.23% | EZ2ON S++ | |
| 1037500 | 94.1364% | 約16.92ms | 約81.33% | ||
| 1025000 | 93.0000% | 約18.29ms | 約78.48% | EZ2ON S+ / IIDX AA相当 | |
| 1012500 | 91.8636% | 約19.64ms | 約75.71% | ||
| 1000000 | 90.7273% | 約20.99ms | 約73.04% | EZ2ON S |
統合表
| (ms) | IIDXスコア率 | EZ2ONスコア率 | 備考 |
|---|---|---|---|
| 約10.16ms | (99.0909%) | EZ2ON S+++ | |
| 約10.25ms | (99.0455%) | EZ2ON S+++(500コンボ) | |
| 約10.34ms | (99.0000%) | EZ2ON S+++(1000コンボ) | |
| 約10.42ms | (94.4444%) | IIDX MAX- | |
| 約10.43ms | (98.9545%) | EZ2ON S+++(1500コンボ) | |
| 約10.51ms | (98.9091%) | EZ2ON S+++(2000コンボ) | |
| 約11.72ms | (98.1818%) | EZ2ON 108万 | |
| 約11.79ms | (98.1364%) | EZ2ON 108万(500コンボ) | |
| 約11.86ms | (98.0909%) | EZ2ON 108万(1000コンボ) | |
| 約11.93ms | (98.0455%) | EZ2ON 108万(1500コンボ) | |
| 約12.00ms | (98.0000%) | EZ2ON 108万(2000コンボ) | |
| 約13.01ms | (97.2727%) | EZ2ON 107万 | |
| 約13.07ms | (97.2273%) | EZ2ON 107万(500コンボ) | |
| 約13.13ms | (97.1818%) | EZ2ON 107万(1000コンボ) | |
| 約13.19ms | (97.1364%) | EZ2ON 107万(1500コンボ) | |
| 約13.25ms | (97.0909%) | EZ2ON 107万(2000コンボ) | |
| 約13.30ms | (88.8888%) | IIDX AAA | |
| 約14.19ms | (96.3636%) | EZ2ON 106万 | |
| 約14.25ms | (96.3182%) | EZ2ON 106万(500コンボ) | |
| 約14.30ms | (96.2727%) | EZ2ON 106万(1000コンボ) | |
| 約14.36ms | (96.2273%) | EZ2ON 106万(1500コンボ) | |
| 約14.42ms | (96.1818%) | EZ2ON 106万(2000コンボ) | |
| 約15.32ms | (95.4545%) | EZ2ON S++ | |
| 約15.37ms | (95.4091%) | EZ2ON S++(500コンボ) | |
| 約15.43ms | (95.3636%) | EZ2ON S++(1000コンボ) | |
| 約15.49ms | (95.3182%) | EZ2ON S++(1500コンボ) | |
| 約15.54ms | (95.2727%) | EZ2ON S++(2000コンボ) | |
| 約15.97ms | (83.3333%) | IIDX AAA- | |
| 約16.70ms | (94.3181%) | EZ2ON 103.75万 | |
| 約16.76ms | (94.2727%) | EZ2ON 103.75万(500コンボ) | |
| 約16.81ms | (94.2273%) | EZ2ON 103.75万(1000コンボ) | |
| 約16.87ms | (94.1818%) | EZ2ON 103.75万(1500コンボ) | |
| 約16.92ms | (94.1364%) | EZ2ON 103.75万(2000コンボ) | |
| 約18.07ms | (93.1818%) | EZ2ON S+ | |
| 約18.12ms | (93.1364%) | EZ2ON S+(500コンボ) | |
| 約18.18ms | (93.0909%) | EZ2ON S+(1000コンボ) | |
| 約18.23ms | (93.0455%) | EZ2ON S+(1500コンボ) | |
| 約18.29ms | (93.0000%) | EZ2ON S+(2000コンボ) | |
| 約18.63ms | (77.7777%) | IIDX AA | |
| 約19.43ms | (92.0454%) | EZ2ON 101.25万 | |
| 約19.48ms | (92.0000%) | EZ2ON 101.25万(500コンボ) | |
| 約19.53ms | (91.9545%) | EZ2ON 101.25万(1000コンボ) | |
| 約19.59ms | (91.9091%) | EZ2ON 101.25万(1500コンボ) | |
| 約19.64ms | (91.8636%) | EZ2ON 101.25万(2000コンボ) | |
| 約20.77ms | (90.9090%) | EZ2ON S | |
| 約20.82ms | (90.8636%) | EZ2ON S(500コンボ) | |
| 約20.88ms | (90.8182%) | EZ2ON S(1000コンボ) | |
| 約20.93ms | (90.7727%) | EZ2ON S(1500コンボ) | |
| 約20.99ms | (90.7273%) | EZ2ON S(2000コンボ) | |
| 約21.41ms | (72.2222%) | IIDX AA- | |
| 約24.41ms | (66.6666%) | IIDX A |