What is This?
収束性の高い乱数を利用するためのコマンド
ダンジョンで「スキルの偏りがひどすぎる」というときに使うのが良い
内部的にはα値というのを用意しており、各値が何回出たかを基に重みづけをして次の乱数を選択している。
例えばα値が1.2で3コマンドA, B, Cが12, 15, 10回ずつ出てきている場合は
次のコマンドの確率は次のように計算される
sum = 1 / 2^12 + 1 / 2^15 + 1 / 2^10
コマンドA確率 = (1 / 2^12) / sum
コマンドB確率 = (1 / 2^15) / sum
コマンドC確率 = (1 / 2^10) / sum
How to Use?
/highconvrandom or /highconvrand で実行可能
基本は収束性が高い乱数ジェネレーターを作成して、そのジェネレーターの結果でコマンドを実行するシステム
【create】
| 説明 | 乱数ジェネレーターを作成する |
| 構文 | /highconvrand create <ジェネレーターのID> <alpha値> <要素数> |
| 例 | /highconvrand create sample_generator 1.2 5 |
α値は大きければ大きいほど偏らなくなり、連続して同じスキルが出なくなる
ランダム性をちょっと強めに残したいなら1.05~1.2程度がお勧め
逆に偏りを十分減らしたいなら2程度にすれば十分
以下のコマンド群を使う前に必ず一回実行すること。基本はボス戦の起動回路などに仕込む。
【generate】
| 説明 | 乱数を基にコマンドを実行する |
| 構文 | /highconvrand generate <ジェネレーターのID> [コマンド1] & [コマンド2] & ... |
| 例 | /highconvrand generate sample_generator say a & say b & say c & say d & sad e |
実際にコマンドを実行する部分。randomexecと同じ使い方でよい。
注意点として、要素数はcreateで設定した要素数と同じにすること。
また、システム上2つ以上のコマンドをかぶらずに実行させることはできない。
【clean】
| 説明 | ジェネレーターの履歴を削除する |
| 構文 | /highconvrand clean <ジェネレーターのID> |
| 例 | /CommandScore clean sample_generator |
これまでの履歴を消去する。リセット回路用。
一応createしなおすと履歴は消去されるが、明示的に消去したことを示したい場合はこれを用いる
【getRandomNumber】
| 説明 | ジェネレーターから出てきた乱数をそのままCommandScoreとして利用する |
| 構文 | /highconvrand getRandomNumber <ジェネレーターのID> <コマブロの座標(w:x,y,z)> |
| 例 | /highconvrand getRandomNumber sample_generator dungeon:2000,5,2000 |
特殊な状況で、乱数の数値をそのまま利用したい場合用