ブルーアーカイブの水着ハナコガチャ、チュートリアルを35回やったらリセマラ終了できそう?
ブルーアーカイブの2.5周年ガチャで、自分なりのリセマラ終了基準が定まってきた。実際にリセマラをやる前に、リセマラ所要時間の期待値を計算しようと思って、さっきPythonで推定チュートリアル回数を求めました。
計算方法にまちがいがあったらすみません。この記事は娯楽程度に楽しんでください。期待値や確率は保証できません。あくまでも私個人の趣味で計算したにすぎません(というか、計算してからやらないと危なっかしい感じがした)。
私の終了基準は「水着ホシノとミカのどちらか一方は必ず引く」というものです。
- 水着ホシノまたはミカは確実に引く
- 片方のみの場合はヒマリまたはアコを最低でも1人引く
- 今回は水着ハナコとワカモは判断材料に入れてない
ガチャは水着ハナコピックアップで40連引くものとします。それ以外のガチャは考慮してません。40という数字も変数にしているので、50連でも30連でも計算できます。
import math
# 水着ハナコの出現確率 pickup
pickup = 0.7 / 100
# 水着ホシノとミカの出現確率 exclusive
exclusive = 0.3 / 100
# ヒマリとアコの出現確率 rare
rare = (4.4 / 100) / 81
def pattern_probability(name: str = '',
hanako: int = 1,
hoshino: int = 1,
mika: int = 1,
himari: int = 1,
ako: int = 1,
per: int = 40):
total = hanako + hoshino + mika + himari + ako
probability = pow(pickup, hanako) * \
pow(exclusive, hoshino) * \
pow(exclusive, mika) * \
pow(rare, himari) * \
pow(rare, ako) * \
pow(1 - pickup - exclusive - rare, per - total) * \
math.comb(per, per - hanako) * \
math.comb(per - hanako, per - hanako - hoshino) * \
math.comb(per - hanako - hoshino, per - hanako - hoshino - mika) * \
math.comb(per - hanako - hoshino - mika, per - hanako - hoshino - mika - himari) * \
math.comb(per - hanako - hoshino - mika - himari, per - total)
print(f'{name} = {round(probability * 100, 4)}%')
return probability
def goal(per: int = 40):
name = '5人全員くる'
probability = pattern_probability(name=name, hanako=1, hoshino=1, mika=1, himari=1, ako=1, per=per)
name = 'ヒマリまたはアコがこない'
probability += pattern_probability(name=name, hanako=1, hoshino=1, mika=1, himari=1, ako=0, per=per) * 2
name = '水着ホシノとミカはくる、ヒマリとアコはこない'
probability += pattern_probability(name=name, hanako=1, hoshino=1, mika=1, himari=0, ako=0, per=per)
name = '水着ハナコがこない'
probability += pattern_probability(name=name, hanako=0, hoshino=1, mika=1, himari=1, ako=1, per=per)
name = '水着ハナコがこない、ヒマリまたはアコがこない'
probability += pattern_probability(name=name, hanako=0, hoshino=1, mika=1, himari=1, ako=0, per=per) * 2
name = '水着ハナコ、ヒマリ、アコがこない'
probability += pattern_probability(name=name, hanako=0, hoshino=1, mika=1, himari=0, ako=0, per=per)
name = '水着ホシノまたはミカがこない→絶対ヒマリまたはアコは必要:水着ハナコいるバージョン'
probability += pattern_probability(name=name, hanako=1, hoshino=1, mika=0, himari=1, ako=0, per=per) * 4
name = '水着ホシノまたはミカがこない→絶対ヒマリまたはアコは必要:水着ハナコいないバージョン'
probability += pattern_probability(name=name, hanako=0, hoshino=1, mika=0, himari=1, ako=0, per=per) * 4
name = '水着ホシノが2回、ミカが1回、またはその逆:水着ハナコいるバージョン'
probability += pattern_probability(name=name, hanako=1, hoshino=2, mika=1, himari=1, ako=1, per=per) * 2
name = '[水着ホシノが2回、ミカが1回、ヒマリまたはアコなし]またはその逆:水着ハナコいるバージョン'
probability += pattern_probability(name=name, hanako=1, hoshino=2, mika=1, himari=1, ako=0, per=per) * 4
name = '[水着ホシノが2回、ミカが1回、ヒマリ・アコなし]またはその逆:水着ハナコいるバージョン'
probability += pattern_probability(name=name, hanako=1, hoshino=2, mika=1, himari=0, ako=0, per=per) * 2
name = '水着ホシノが2回、ミカが1回、またはその逆:水着ハナコいないバージョン'
probability += pattern_probability(name=name, hanako=0, hoshino=2, mika=1, himari=1, ako=1, per=per) * 2
name = '[水着ホシノが2回、ミカが1回、ヒマリまたはアコなし]またはその逆:水着ハナコいないバージョン'
probability += pattern_probability(name=name, hanako=0, hoshino=2, mika=1, himari=1, ako=0, per=per) * 4
name = '[水着ホシノが2回、ミカが1回、ヒマリ・アコなし]またはその逆:水着ハナコいないバージョン'
probability += pattern_probability(name=name, hanako=0, hoshino=2, mika=1, himari=0, ako=0, per=per) * 2
print(f'{per}連で望みが叶う確率 = {round(probability * 100, 4)}%')
return math.floor(1 / probability)
expected = goal(per=45)
print(f'推定チュートリアル回数 = {expected}')
※引数に水着ハナコを入れていますが、実際は最終的な計算結果に影響を与えてない。
結果発表:1回のチュートリアルで40連やり続ける場合、理想形を手にするまでに必要なチュートリアルはおそらく44回
5人全員くる = 0.0001%
ヒマリまたはアコがこない = 0.0051%
水着ホシノとミカはくる、ヒマリとアコはこない = 0.2523%
水着ハナコがこない = 0.0004%
水着ハナコがこない、ヒマリまたはアコがこない = 0.0196%
水着ハナコ、ヒマリ、アコがこない = 0.9385%
水着ホシノまたはミカがこない→絶対ヒマリまたはアコは必要:水着ハナコいるバージョン = 0.0457%
水着ホシノまたはミカがこない→絶対ヒマリまたはアコは必要:水着ハナコいないバージョン = 0.1699%
水着ホシノが2回、ミカが1回、またはその逆:水着ハナコいるバージョン = 0.0%
[水着ホシノが2回、ミカが1回、ヒマリまたはアコなし]またはその逆:水着ハナコいるバージョン = 0.0003%
[水着ホシノが2回、ミカが1回、ヒマリ・アコなし]またはその逆:水着ハナコいるバージョン = 0.0142%
水着ホシノが2回、ミカが1回、またはその逆:水着ハナコいないバージョン = 0.0%
[水着ホシノが2回、ミカが1回、ヒマリまたはアコなし]またはその逆:水着ハナコいないバージョン = 0.0011%
[水着ホシノが2回、ミカが1回、ヒマリ・アコなし]またはその逆:水着ハナコいないバージョン = 0.0541%
40連で望みが叶う確率 = 2.2452%
推定チュートリアル回数 = 44
44回か…。1回のチュートリアルで15分くらいかかるから、11時間くらいかかることになる…。
微妙…。やれそうだし、無理そうだし、なんとも言えない絶妙な期待値。
確率が上ぶれたら30回のチュートリアルでも理想形がきそう。下ぶれたら100回いきそう。きつい。
ちなみに40連を50連にした結果はこちら:
50連で望みが叶う確率 = 3.427%
推定チュートリアル回数 = 29
追記
リセマラを始めてあれだけど、なんか45回できそうなんだよね。チュートリアル1回あたり水着ハナコガチャを45回やったら期待値がどれだけ変わるか。
45連で望みが叶う確率 = 2.8104%
推定チュートリアル回数 = 35
40連から50連にかけて理想形のくる確率が大幅に上昇している。2.2から3.4ってすごい。あの水色の石は限界まで使ったほうが良さそう。
わかったこと:40連ぜんぜんダメでも石は限界まで使おう。40連から50連にかけて確率が大幅に上がっているから。
ブルーアーカイブ