ディスクアップの設定判別ツール作成

今回はディスクアップの設定判別ツールをPythonで作成します。

過去に作成したジャグラーの設定判別と異なり、ディスクアップはART(DANCE TIME, DJ ZONE)中の「共通9枚役」と「はずれ」も計算する必要があります。

設定推測値の計算方法

計算自体は簡単で、二項分布の確率算出の関数である「binom.pmf」で「回転数」を入力し
ていたところに「ART回転数」を入れるだけです。
具体的には、下記の計算式になります。
    共通9枚役の二項分布確率 = binom.pmf(共通9枚役回数, ART回転数, 共通9枚役の設計上の確率)
    はずれの二項分布確率 = binom.pmf(はずれ回数, ART回転数, はずれの設計上の確率)

また、ディスクアップではビタ乗せなし(BB中のビタ押し成功時に上乗せが発生しない)確率にも設定差が設けられているため、こちらの計算も必要です。

この場合も計算自体は簡単で、先ほどの「回転数」の部分を「BB中の回転数」に変更するだけです。
具体的には以下のように、BB1回あたりのG数である25Gに、BB回数をかけることによって計算できます。
    ビタ乗せなしの二項分布確率 = binom.pmf(ビタ乗せなし回数, BB回数 * 25, ビタ乗せ無しの設計上の確率)

あとはジャグラーの設定判別ツールと同様に各役の二項分布確率を計算すれば完成です。

今回作成したコード

こちらが実際に作成したディスクアップの設定判別ツールのコードです。
# coding: UTF-8
from scipy.stats import binom

def S_EST(回転数, BB, RB, チェリー, スイカ, ART回転数, 共通9枚, はずれ, 異色BB, チェレグ, ビタ乗せなし):
    # 設定値データを定義
    header = ['Machine', 'Setting', 'BB', 'RB', 'Cherry', 'Suica', '9mai', 'Hazure', 'ABB', 'CherryRB', 'Bita']
    set1 = ['Disc', '1', '288.7', '496.5', '26.0', '46.9', '20.0', '11.5', '16384', '5461.3', '4156']
    set2 = ['Disc', '2', '287.4', '458.3', '24.9', '45.3', '19.4', '10.9', '13107.2', '3276.8', '1032']
    set5 = ['Disc', '5', '281.3', '442.8', '24.0', '42.4', '18.3', '9.9', '6553.6', '2978.9', '517']
    set6 = ['Disc', '6', '273.1', '422.8', '23.1', '41.0', '17.6', '9.4', '3855.1', '2520.6', '258']

    SetData = [header, set1, set2, set5, set6]

    # 設定段階分の確率算出値データをSetDataから読み込んでfor文を回す。
    # ヘッダーを無視するために、iは1から。
    S_EST = []
    for i in range(1, len(SetData[:])):
        All_EST = 0

        # それぞれの二項分布確率算出。空欄の場合はその項を無視
        if 回転数 != -1 and BB != -1:
            BB_EST = binom.pmf(BB, 回転数, 1.0 / float(SetData[i][2]))
            All_EST = BB_EST
        if 回転数 != -1 and RB != -1:
            RB_EST = binom.pmf(RB, 回転数, 1.0 / float(SetData[i][3]))
            if All_EST == 0:
                All_EST = RB_EST
            else:
                All_EST = All_EST * RB_EST
        if 回転数 != -1 and チェリー != -1:
            Cherry_EST = binom.pmf(チェリー, 回転数, 1.0 / float(SetData[i][4]))
            if All_EST == 0:
                All_EST = Cherry_EST
            else:
                All_EST = All_EST * Cherry_EST
        if 回転数 != -1 and スイカ != -1:
            Suica_EST = binom.pmf(スイカ, 回転数, 1.0 / float(SetData[i][5]))
            if All_EST == 0:
                All_EST = Suica_EST
            else:
                All_EST = All_EST * Suica_EST
        if ART回転数 != -1 and 共通9枚 != -1:
            Com9_EST = binom.pmf(共通9枚, ART回転数, 1.0 / float(SetData[i][6]))
            if All_EST == 0:
                All_EST = Com9_EST
            else:
                All_EST = All_EST * Com9_EST
        if ART回転数 != -1 and はずれ != -1:
            Hazure_EST = binom.pmf(はずれ, ART回転数, 1.0 / float(SetData[i][7]))
            if All_EST == 0:
                All_EST = Hazure_EST
            else:
                All_EST = All_EST * Hazure_EST
        if 回転数 != -1 and 異色BB != -1:
            BB_DT_EST = binom.pmf(異色BB, 回転数, 1.0 / float(SetData[i][8]))
            if All_EST == 0:
                All_EST = BB_DT_EST
            else:
                All_EST = All_EST * BB_DT_EST
        if 回転数 != -1 and チェレグ != -1:
            RB_Cherry_EST = binom.pmf(チェレグ, 回転数, 1.0 / float(SetData[i][9]))
            if All_EST == 0:
                All_EST = RB_Cherry_EST
            else:
                All_EST = All_EST * RB_Cherry_EST
        if BB != -1 and ビタ乗せなし != -1:
            Bita_EST = binom.pmf(ビタ乗せなし, BB * 25, 1.0 / float(SetData[i][10]))
            if All_EST == 0:
                All_EST = Bita_EST
            else:
                All_EST = All_EST * Bita_EST
        S_EST.append(All_EST)

    # 結果の表示
    for i in range(len(S_EST)):
        print("設定", SetData[i + 1][1], ":", round(S_EST[i] / sum(S_EST) * 100,1), "%")
if __name__ == "__main__":
    # 実践データ
    # カウントしていない場合は、-1を入力
    回転数 = 707
    BB = 1
    RB = 3
    チェリー = 25
    スイカ = 18
    ART回転数 = 43
    共通9枚 = 2
    はずれ = 3
    異色BB = 0
    チェレグ = 0
    ビタ乗せなし = 0

    S_EST(回転数, BB, RB, チェリー, スイカ, ART回転数, 共通9枚, はずれ, 異色BB, チェレグ, ビタ乗せなし)

設定判別ツールの実行結果

このプログラムを実行した時の結果はこちら。
設定 1 : 32.2 %
設定 2 : 29.5 %
設定 5 : 23.1 %
設定 6 : 15.2 %
無事に設定判別結果が出力されていますね。


にほんブログ村 パチンコブログ パチンコ情報へ
にほんブログ村

にほんブログ村 スロットブログ スロット情報へ
にほんブログ村

コメント

このブログの人気の投稿

【WEBアプリ】Sキングハナハナ-30のベル確率予想&ベル確率逆算ツール&設定判別ツール

【WEBアプリ】ハナハナホウオウ天翔のベル確率を差枚数から逆算するツール

【WEBアプリ】6号機ジャグラーのぶどう確率逆算ツール&設定判別ツール