highconvrandom

Last-modified: 2025-09-09 (火) 06:31:01

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

特殊な状況で、乱数の数値をそのまま利用したい場合用