見出し画像

アセンから得られるAURA関係のパラメータを総当たりでリスト化する

要旨

AURAを前提としてアセンを考える際、AURAレベル、チャージ時間、パーツ個数制限などをひとつずつ計算するのが面倒なので、アセンを総当たりでリスト化し、ソート、フィルタリングができないかを検討しました。
一例として、フラガ機を組む際のアセンを考え、94万5千通りの組み合わせを総当たりでリスト化することができました。

詳細

やりたいこと

下記のようなリストを出力することを目標にします。

例として、フラガ機を作ることを想定し、AURA以外のパーツをいくつか固定したうえで、空きパーツスロットにAURAパーツを入れることを考えます。

データの準備

アセンをリスト化した後、合計のAURAレベルを計算するため、使用候補パーツの個々の性能をリスト化したものを準備します。

組み合わせの考え方

まず、部位ごとの組み合わせを考えます。
例えば、BDは3スロットのところに、候補パーツが4種類あります。この時の組み合わせは、重複組み合わせですので、(4+3-1)C3=20通りとなります。

次に、部位ごとに求めた組み合わせに対し、部位同士の組み合わせを計算します。こちらは単純に部位ごとに求めた組み合わせの掛け算(正確には直積)です。
HD(6通り)x BD(20通り)x AM(5通り)x BSJ(35通り)x BS(15通り)x AC(3通り)= 945,000通り

計算

Pythonでプログラムを組み、945,000通りの組み合わせをリスト化しました。時間は12分ほどかかりました。

945,000通りのリスト化中

出力された945,000行のcsvファイルは約300MBでした。
それぞれのアセンと、AURA関係のパラメータがリスト化できました。

このようなデータが945,000行続きます

ここからのフィルターやソートはEXCELで行います。

ビームパワーでソートしてみました。得られる最大のビームパワーは9であることと、そのときのアセンが分かります。

ビームパワーでソート

チャージ時間でソートしてみます。最大で114秒機が存在します。

AURAチャージ時間でソート

フィルターを使うこと、AURAパーツを固定した時の組み合わせを検討することができます。例えば、ACスロットの一つを「なし」に固定すると、天を1枚にしたときの条件で絞り込めます。

ACスロットをなしに固定

出力したファイルを圧縮してアップロードしました。
行数が多いため、そのままExcelで開くと数分かかりますので注意してください。
ExcelのCSVインポート機能で、必要なパラメータでフィルタリングしてからExcelに取り込むことをお勧めします。

今後の展開

WEBアプリ化

現在は、条件によっては処理に3時間くらいかかるため、サーバーへの負荷が大きくWEBアプリ化はしていません。プログラムがもっと高速化できれば、画像切り出しツールのように、WEBアプリ化したいと思います。

もし計算したい組み合わせがあれば、コメント欄もしくはTwitterでコメントを頂ければ、ローカルで計算してアップロードします。

AURA以外の計算

AURA以外にも、威力+%アップ などの条件でも同じことができます。AURAに比べてパーツ数が多いので、計算にはかなり時間がかかるものと思います。

副産物

AURA対応パーツ一覧
抜けや誤りがあるかも。(2022/8/28 AirTableに移行)


この記事が気に入ったらサポートをしてみませんか?