masalibの日記

システム開発、運用と猫の写真ブログです

スマスロのかぐや様のモードの推測について

スマスロのかぐや様という機種があります。BIG連がメインの出し方になります。
通常時はチャンス目を引いてBIGorREGの当選をめざします。

機械割がもっとも低いのは

チャンスモードがAにいる

時です。
これを回避するためにモードを推測します

チャンス目の規定回数とは

モードによって回数が決められている。

ちょんぼりすた様より引用
チャンス目の規定回数を管理するモードが4種類存在。
モードが高いほどチャンス目の規定回数振り分けが優遇される。

モードの初期化について

設定変更後とBIG変更後がある

モード リセット BIG後
A 38% 62%
B 60% 35%
C 1% 2%
D 1% 1%

リセット恩恵は天井が800G+αがメインなので モードに関してははあると嬉しいレベルになっている

モード移行について

CZ失敗時・REG終了時にモード移行をおこなう。

見ればわかるがモードC以上に移行すればBIGに当選するまでモードC以上となる。

モード推測について

CZ失敗やREGが発生するとモードがあがる仕様なので どれぐらいの確率でモードにいるのかを計算してみた。
BIGとリセット状態では微妙に違うので別々にしています

BIG後の推測について

モードA モードB モードC モードD
1回スルー 23.560% 57.150% 17.430% 1.860%
2回スルー 8.953% 46.711% 37.486% 6.850%
3回スルー 3.402% 31.997% 50.336% 14.265%
4回スルー 1.293% 20.280% 58.400% 20.028%
5回スルー 0.491% 12.335% 63.263% 23.911%
6回スルー 0.187% 7.326% 66.137% 26.350%
7回スルー 0.071% 4.288% 67.815% 27.827%
8回スルー 0.027% 2.487% 68.786% 28.701%
9回スルー 0.010% 1.434% 69.345% 29.212%
10回スルー 0.004% 0.823% 69.665% 29.508%
11回スルー 0.001% 0.472% 69.849% 29.678%
12回スルー 0.001% 0.270% 69.954% 29.776%

6スルーからは90%以上でCにいる。

リセット後の推測について

モードA モードB モードC モードD
1回スルー 14.440% 57.000% 27.010% 1.550%
2回スルー 5.487% 41.154% 43.614% 9.745%
3回スルー 2.085% 26.750% 54.306% 16.859%
4回スルー 0.792% 16.499% 60.828% 21.881%
5回スルー 0.301% 9.880% 64.711% 25.108%
6回スルー 0.114% 5.812% 66.987% 27.086%
7回スルー 0.043% 3.382% 68.308% 28.267%
8回スルー 0.017% 1.954% 69.070% 28.960%
9回スルー 0.006% 1.123% 69.508% 29.362%
10回スルー 0.002% 0.644% 69.759% 29.594%
11回スルー 0.001% 0.369% 69.903% 29.728%
12回スルー 0.000% 0.211% 69.985% 29.805%

リセット後も6スルーからは90%以上でCにいるが 5スルーでも89%でCにいる

計算プログラム

見る人はいないと思うけど計算につかったプログラムです

クリックすると展開されます

import numpy as np
import pandas as pd

# BIG後
# 初期確率
initial_probs = np.array([0.62, 0.35, 0.02, 0.01])

# 遷移行列
transition_matrix = np.array([
    [0.38, 0.60, 0.01, 0.01],  # A -> [A, B, C, D]
    [0, 0.57, 0.42, 0.01],     # B -> [A, B, C, D]
    [0, 0, 0.68, 0.32],        # C -> [A, B, C, D]
    [0, 0, 0.75, 0.25 ]         # D -> [A, B, C, D]
])

# 1回から12回のスルー後の確率を計算
results = {}
for i in range(1, 13):
    results[f"{i}回スルー"] = initial_probs @ np.linalg.matrix_power(transition_matrix, i)

# 結果をDataFrameに変換し、パーセント表示に変換
result_df = pd.DataFrame(results, index=['モードA', 'モードB', 'モードC', 'モードD']).T
result_df = result_df * 100  # パーセントに変換
result_df = result_df.round(3)  # 小数点3桁で丸める
print(result_df)

# 初期確率(朝一)
initial_probs = np.array([0.38, 0.60, 0.01, 0.01])

# 遷移行列(提供された表に基づく)
transition_matrix = np.array([
    [0.38, 0.60, 0.01, 0.01],  # A -> [A, B, C, D]
    [0, 0.57, 0.42, 0.01],     # B -> [A, B, C, D]
    [0, 0, 0.68, 0.32],        # C -> [A, B, C, D]
    [0, 0, 0.75, 0.25 ]         # D -> [A, B, C, D]
])

# 1回から10回のスルー後の確率を計算
results = {}
for i in range(1, 13):
    results[f"{i}回スルー"] = initial_probs @ np.linalg.matrix_power(transition_matrix, i)

# 結果をDataFrameに変換して表示
result_df = pd.DataFrame(results, index=['モードA', 'モードB', 'モードC', 'モードD']).T
result_df = result_df * 100  # パーセントに変換
result_df = result_df.round(3)  # 小数点3桁で丸める
print(result_df)

実際に動かしたい人はcolabで動かすことができます

colab.research.google.com

スルーについて

REGはデータカウンターにあがっているから問題ないが CZはあがない(マイホではあがない。あがるデータカウンターもある) 自分は「通常Aであっても300GぐらいでCZはもらえる」と想定している