月を眺める孤島

多分デレステとポケモンの話がメインのブログです

レッスン機能の新しい仕様について(最新版)

f:id:shinemoon227:20170624010602p:plain


先日、またしてもレッスン機能がアップデートされました。
今回の変更点は以下の通りです。



【変更前の計算方法】
1. 同タイプのレッスンパートナー毎に特技Lv上昇確率を1.2倍します。
2. レッスンパートナー毎に小数点以下の特技Lv上昇確率がある場合は切り上げます。
3. 各レッスンパートナーの特技Lv上昇確率を合算します。

    ↓

【変更後の計算方法】
1. レッスンパートナー毎に小数点以下の特技Lv上昇確率がある場合は切り上げます。
2. 同タイプのレッスンパートナーの場合、特技Lv上昇確率を1.2倍します。
3. 2の計算後、小数点以下の特技Lv上昇確率を切り上げます。
4. 各レッスンパートナーの特技Lv上昇確率を合算します。



これまでの計算方法


まずはアップデート以前の計算方法を振り返ってみます。
以下の表は、特技Lv1のアイドル \(A\) を特技Lv1のアイドル / トレーナー \(B\) 1枚でレッスンしたときの特技Lv上昇確率 \(f(A, B)\) です(単位は%)。各種キャンペーンで入手することのできたチケットはCチケットと省略します。


f(A, B) SSR SR R
同タイプR 12 36 60
同タイプSR 36 60 96
異タイプR / ベテチケ 10 30 50
異タイプSR / マスチケ 30 50 80
OSルキチケ 1 5 25
Cトレチケ 5 25 40
Cベテチケ 25 40 70
Cマスチケ 250 500 500
STマスチケ 500 500 500



このとき、特技Lv \(l_A\) のアイドル \(A\) を特技Lv \(l_B\) のアイドル / トレーナー \(B\) 1枚でレッスンしたときの特技Lv上昇確率 \(g(A, B)\) は

\[
g(A, B) = {\rm ceil} \left( \frac{l_B+1}{l_A+1}f(A, B) \right)
\]

と表すことができます。ただし、トレーナーは \(l_B = 1\) として扱います。また、レッスンに用いるアイドルやトレーナーを複数に増やしたときの特技Lv上昇確率 \(h(A, B_1, B_2, ... , B_n)\) は

\[
h(A, B_1, B_2, ... , B_n) = {\rm min} \left( \sum_{i=1}^{n} g(A, B_i), 100 \right) (1≦n≦20)
\]

となります。ここで、 \({\rm min}(a, b)\) は \(a\) と \(b\) の内小さなほうを返す関数、 \({\rm ceil}(x)\) は \(x\) を切り上げる天井関数です。アイドルかトレーナーは合計20枚までしか使用できませんが、前回の仕様変更により両者を混ぜて使用できるようになりました。

ここまでが以前の計算方法になります。


計算式の書き換え


続いて、今回の仕様変更を改めて見ていきましょう。


1. レッスンパートナー毎に小数点以下の特技Lv上昇確率がある場合は切り上げます
2. 同タイプのレッスンパートナーの場合、特技Lv上昇確率を1.2倍します。
3. 2の計算後、小数点以下の特技Lv上昇確率を切り上げます
4. 各レッスンパートナーの特技Lv上昇確率を合算します。


注目すべきは、切り上げる処理が2回入っているという点です。特に計算はせずとも、「以前より特技Lvを上げやすくなったんだな」ということは理解できるかと思います。
しかし、1の「小数点以下の特技Lv上昇確率がある場合」という表現がどうにも引っかかります。というのも、 \(f(A, B)\) には小数点以下の特技Lv上昇確率は見当たりません。
この疑問は、以下のように処理を補うことで解決できます。



【変更前の計算方法】
1. アイドルとレッスンパートナーの特技Lvをもとに確率を調整します。
2. 同タイプのレッスンパートナー毎に特技Lv上昇確率を1.2倍します。
3. レッスンパートナー毎に小数点以下の特技Lv上昇確率がある場合は切り上げます。
4. 各レッスンパートナーの特技Lv上昇確率を合算します。

    ↓

【変更後の計算方法】
1. アイドルとレッスンパートナーの特技Lvをもとに確率を調整します。
2. レッスンパートナー毎に小数点以下の特技Lv上昇確率がある場合は切り上げます。
3. 同タイプのレッスンパートナーの場合、特技Lv上昇確率を1.2倍します。
4. 3の計算後、小数点以下の特技Lv上昇確率を切り上げます。
5. 各レッスンパートナーの特技Lv上昇確率を合算します。


そもそも、公式の文章中に \(g(A, B)\) らしき「特技Lvに応じて確率を調整した」処理のことは書かれていません。そこで、最初にその処理を加えてやることで、小数が出てくることの説明がつくわけです。
これを踏まえて、仕様変更前の計算式を少し変形するところから始めていきたいと思います。


まず、「特技Lv上昇確率を1.2倍します」という表記があったため、1.2倍する計算を関数の外に出すことにします。ここでは \(f(A, B)\) からタイプの区別をなくし、 \(f_1(A, B)\) と表現することにします。


f_1(A, B) SSR SR R
Rアイドル / ベテチケ 10 30 50
SRアイドル / マスチケ 30 50 80
OSルキチケ 1 5 25
Cトレチケ 5 25 40
Cベテチケ 25 40 70
Cマスチケ 250 500 500
STマスチケ 500 500 500


続いて、アイドル \(A\) がアイドル / トレーナー \(B\) と同じ場合に \(1.2\) を返す関数を \(k(A, B)\) とします。

\[
k(A, B) = \begin{cases}
1.2 & (AとBが同タイプ) \\
1 & (AとBのタイプが異なるか、Bがチケット)
\end{cases}
\]

これらの関数を用いて、 \(g(A, B)\) を以下の関数 \(g_1(A, B)\) と改めます。

\[
g_1(A, B) = {\rm ceil} \left( \frac{l_B+1}{l_A+1}k(A, B)f_1(A, B) \right)
\]


ここまでは、まだ計算の表現を変えただけなので値は一切変わりませんが、このように式変形することで今回の仕様変更を簡単に表せるようになりました。


仕様変更後の計算方法


最後は仕様変更後の計算方法です。切り上げる処理は特技Lvによる確率の調整後とタイプ一致処理後の2回行われているので、以下の関数 \(g_2(A, B)\) に変更されました。

\[
g_2(A, B) = {\rm ceil} \left(k(A, B) \ {\rm ceil} \left( \frac{l_B+1}{l_A+1}f_1(A, B) \right) \right)
\]

それにともない、合算時の関数も置き換わります(ここの計算自体に変更はありません)。

\[
h_1(A, B_1, B_2, ... , B_n) = {\rm min} \left( \sum_{i=1}^{n} g_2(A, B_i), 100 \right) (1≦n≦20)
\]


具体例


特技Lv8のSSRに特技Lv1のアイドルを1枚用いてレッスンした際の確率の計算の処理です。
タイプ一致ボーナスを適用するタイミングが変わり、2回小数点以下を切り上げするようになっています。


処理 変更前
1. f_1(A, B)を求める 10.00%
2. Aは特技Lv8なので2/9倍する 2.22%
3. タイプ一致なので1.2倍する 2.67%
4. 小数点以下を切り上げる 3.00%


処理 変更後
1. f_1(A, B)を求める 10.00%
2. Aは特技Lv8なので2/9倍する 2.22%
3. 小数点以下を切り上げる 3.00%
4. タイプ一致なので1.2倍する 3.60%
5. 小数点以下を切り上げる 4.00%


仕様変更による恩恵


で、この仕様変更でどれくらい得をするようになったの?
というわけで、今回SSRに対する確率に変動があったところだけを書き出してみました。


変更前
同タイプR
変更後
同タイプR
ベテチケ 変更前
同タイプSR
変更後
同タイプSR
マスチケ
Lv1→Lv2 12 12 10 36 36 30
Lv2→Lv3 8 9 7 24 24 20
Lv3→Lv4 6 6 5 18 18 15
Lv4→Lv5 5 5 4 15 15 12
Lv5→Lv6 4 5 4 12 12 10
Lv6→Lv7 4 4 3 11 11 9
Lv7→Lv8 3 4 3 9 10 8
Lv8→Lv9 3 4 3 8 9 7
Lv9→Lv10 3 3 2 8 8 6


実は、今回確率が上がったのはRを与えたときの特技Lv2、5、7、8、及びSRを与えたときの特技Lv7、8のみです。それぞれ、仕様変更に伴い確率が1%上昇しています。
Rはこれまで 同タイプR \(≧\) タイプ違いR / ベテチケ であったのが、仕様変更により 同タイプR \(>\) タイプ違いR / ベテチケ となり全ての特技Lvにおいてタイプが一致しているRのアイドルでレッスンを行ったほうが効率がいいようになりました(一部の特技Lv下において「タイプ一致ボーナス」なのにタイプが一致していても確率が上がらないのはおかしいため仕様変更されたものと思われます)。

わずかではありますが以前よりも更に特技Lvを上げやすくなったので、該当する特技Lvだった場合には積極的にタイプが一致しているアイドルを使ってレッスンしてあげましょう。



{
\displaystyle
\begin{equation}
\end{equation}
}