METHODOLOGY
計算方法と検証
このページでは、入力した5体と生活スケジュールから週間Strengthを求める流れ、ランダムに抽選する要素、同じ結果を再現する方法、計算の正しさを確認する仕組みを説明します。
最初に区別する2つの「エナジー」
| 本サイトの呼び方 | 意味 | 計算での役割 |
|---|---|---|
| Strength つよさ/カビゴンのエナジー | きのみ、料理、スキルでカビゴンに蓄積する週間アウトプット。 | 本シミュレーターが比較する主な結果です。 |
| げんき(Genki) | 各ポケモンのスタミナ。睡眠やスキルで回復し、時間とともに減ります。 | おてつだい間隔などへ影響する内部状態です。 |
両者は意味も単位も異なります。本サイトではコード上でも別の型として扱い、取り違えを防いでいます。
1試行の流れ
- 入力を計算用データへ解決する。
種、レベル、せいかく、食材構成、サブスキル、フィールド、料理、睡眠、回収予定を、計算中に文字列検索が不要な形へ変換します。 - 絶対時刻のイベントを進める。
各個体のおてつだい、起床・就寝、回収、朝昼夜の料理、条件付きの編成入替を時刻順に処理します。 - 抽選を行う。
おてつだいごとに、きのみか食材か、どの食材スロットか、メインスキルをストックするかを抽選します。料理では大成功の抽選も行います。 - Strengthと状態を更新する。
きのみ・スキルは条件に応じてStrengthへ加算し、食材は在庫へ入れ、料理時にレシピへ変換します。げんき、所持数、スキルストックも更新します。 - 同じ条件を多数回繰り返す。
各試行の総Strengthを集計し、平均だけでなく標準偏差、信頼区間、分位点を求めます。
何をランダムにするか
| 要素 | 扱い | 理由 |
|---|---|---|
| きのみ/食材 | 試行ごとに抽選 | 個体ごとの食材確率に従うためです。 |
| 食材スロット | 解放済み候補から抽選 | 同じ食材型でも、持ってくる種類にばらつきがあるためです。 |
| メインスキル | 発動率とストック上限に従って抽選 | 回収までの間隔と所持上限が実際の発動回数へ影響するためです。 |
| 料理の大成功 | 曜日等に応じて抽選 | 週間結果の上振れ・下振れを作る主要因だからです。 |
| 基礎頻度、きのみ強度、レシピ値 | 入力とデータから決定 | 抽選ではなく、式とデータ表で決まる値だからです。 |
同じ結果を再現できる理由
シミュレーションはユーザーが指定したシードと試行番号から乱数列を作ります。同じバージョン、入力、シード、試行回数なら、実行環境や並列度に依存せず同じ結果を再現できます。比較ではシードと試行回数を揃えることで、編成以外の偶然差を小さくできます。
シードは「未来を当てる番号」ではありません。同じ仮想抽選を再実行し、設定変更前後を公平に比較するための再現用IDです。
4層の検証
式の単体テスト
おてつだい頻度、げんき帯、食材率、きのみ強度、所持数、スキル発動率などを、文書化した式と1対1で検証します。
高速版と参照版の比較
本番用の高速なイベント計算と、毎秒状態を進める独立した参照実装を同じシードで比較し、境界処理のずれを検出します。
外部期待値との比較
頻度・食材率・きのみ強度・スキル確率などの確定値を、一次ソースであるSleepAPI由来の期待値と比較します。
乱数列の不変性
解析やログなどの観測機能を追加しても、機能を使わないときの乱数消費と結果が変わらないことを検証します。
データの出典
一次ソースはApache-2.0で公開されているNeroli's Lab / SleepAPIです。データが収録されていない種や、古いスナップショットとの差がある項目は、RaenonX、Serebii、Game8などで補助確認します。ライセンスと帰属はクレジットに掲載しています。
限界と読み方
- ゲーム内部の非公開仕様を完全に再現するものではなく、公開情報に基づく近似モデルです。
- ゲーム更新で確率・スキル・レシピ・島の仕様が変わると、サイト更新まで差が生じます。
- 平均値が高くても、標準偏差や下位分位点が大きく異なる編成があります。平均だけで判断しないでください。
- 入力していない現実の行動、回収忘れ、料理変更、イベント補正は結果へ入りません。
計算例と結果の読み方では、比較条件の揃え方と各指標の使い分けを具体的に説明しています。