ミリシタのレベルによって上昇するパラメータの計算方法について

ミリシタのカードのステータスのうち、ボーカル、ダンス、ビジュアルの値は、このページで示す方法で正確に計算できます。

このページにおいて「最大ステータス」とは。「覚醒後・Lv 最大・マスターランク 0」のときのステータスで、API では vocalMaxAwakened などと表記している値を指します。

また、「最大レベル」は覚醒後の最大レベルです。

ベースの値

(最大ステータス)×(最大レベル−10)÷(最大レベル×2)の四捨五入を計算します。

上昇幅

覚醒前は、(最大ステータス)÷(最大レベル×2)とします。

覚醒後は、(覚醒前の上昇幅)×(最大レベル+10)÷(最大レベル)とします。

ステータスの計算方法

(ベースの値)+(上昇幅×レベル)の四捨五入によって計算します。

計算例

覚醒後の「ロマンティックランド 徳川まつり」(ID 278)の Lv.40、マスターランク 5 のときのボーカルは以下のように計算できます。

ここで、「ロマンティックランド 徳川まつり」の最大レベルは 90、最大ステータスは 4547、マスターランクのボーナスは 136 です。

vocal_base = round(4547 * (90 - 10) / (90 * 2)) = 2021

vocal_diff_before_awakened = 4547 / (90 * 2) = 25.26111111

vocal_diff_after_awakened = 25.26111111 * (90 + 10) / 90 = 28.06790123

vocal = round(2021 + 28.06790123 * 40 + 136 * 5) = 3824

覚醒後・最大 Lv のとき、最大値に一致することの証明

最大ステータスを M、最大レベルを L として、上の方法で計算した四捨五入をとる前のステータスを A とします。

A = round(M * (L - 10) / 2L) + L * (M / 2L) * (L + 10) / L = round(M * (L - 10) / 2L) + M * (L + 10) / 2L

任意の x について x - 0.5 < round(x) <= x + 0.5 なので、M - 0.5 < A <= M + 0.5

したがって、A の小数部分が 0.5 のときに限って round(A) = M + 1、それ以外の場合 round(A) = M

ここで、M は整数であるため、A の小数部分が 0.5 のとき、(L + 10) / 2L を約分すると分母が偶数である必要があります。

しかし、L は 30、50、70、90 しか取ることがないため、この条件を満たすことはありません。

よって、round(A) = M