PlusleSeedCalculator.Library.IRandomS インターフェース

これはプラスルツールのプラグイン作者向けに書かれた記事です。
プラグインの使い方を知りたい方は[id:plusletool:20100918:howtouse]を参照。
プラグインの作り方を知りたい方は[id:plusletool:20100918:PluginManual]も参照。

性格値乱数計算に必要になりそうなメソッドを提供するインターフェースです。
このインターフェースを実装したインスタンスは、ICalculator インターフェースのCalculatorメソッドの引数として、プラスルツール本体側から提供されます。
よってプラグイン作者はこのインターフェースを実装する必要はありません。

Index プロパティ

性格値乱数の現在の消費回数を取得します。
この値は、オフセット・初期消費処理終了時のseedから数えて何回消費したかを示します。
このプロパティ値は、IRandomS.NextメソッドまたはIRandomS.NextSeedプロパティを呼び出す度に1ずつ増加し、IRandomS.PrevSeedプロパティを呼び出す度に1ずつ減少します。

【定義】

int Index { get; }

【プロパティ値】
性格値乱数の現在の消費回数を取得します。

Seed プロパティ

現在のseedを取得します。
ここでいうseedとは、性格値乱数値のseed(64bit)であり、いわゆる S1[n] のことです。

なお、これは「seed」であって「初期seed」とは異なります。
(※初期seedを何回か消費した値がseed。上記の記法を使うなら、
 初期seed ………… S1[0] (S1[1]とする流派もある)
 n回消費したseed … S1[n]
つまり、このseedは消費やオフセットを処理済みの値なので、
それらを気にする必要はない、ということです。)

【非推奨】このプロパティは非推奨扱いです。
実際の乱数計算でseedの値を直接使うことは(たぶん)ないので、使う必要はないと思われます。
どうしてもseedの値が必要な場合を除き、IRandomS.Nextメソッドを使用してください。

【定義】

ulong Seed { get; }

【プロパティ値】
現在のseed。

NextSeed メソッド

次のseedを取得します。
このメソッドを呼び出す度に、性格値乱数を1消費します。
このとき、Indexの値が1増加し、Seedの値が更新されます。

【非推奨】このメソッドは非推奨扱いです。
実際の乱数計算でseedの値を直接使うことは(たぶん)ないので、使う必要はないと思われます。
どうしてもseedの値が必要な場合を除き、IRandomS.Nextメソッドを使用してください。

【定義】

ulong NextSeed();

【戻り値】
次のseed。

PrevSeed メソッド

前のseedを取得します。
このメソッドを呼び出す度に、性格値乱数を-1消費します(1回消費する前の状態に戻ります)。
このとき、Indexの値が1減少し、Seedの値が更新されます。

【非推奨】このメソッドは非推奨扱いです。
実際の乱数計算でseedの値を直接使うことは(たぶん)ないので、使う必要はないと思われます。
どうしてもseedの値が必要な場合を除き、IRandomS.Nextメソッドを使用してください。

【定義】

ulong PrevSeed();

【戻り値】
前のseed。

Next() メソッド

次の性格値乱数を取得します。
ここでいう性格値乱数とは、Seedの上位32bitのことであり、いわゆる r1[n] のことです。
このメソッドを呼び出す度に、性格値乱数を1消費します。
このとき、Indexの値が1増加し、Seedの値が更新されます

このメソッドには2個のオーバーロードがあります。
もう1つのメソッドはNext(uint)メソッドですが、戻り値の意味が異なるので注意してください。

【定義】

uint Next();

【戻り値】
次の性格値乱数。

Next(uint) メソッド

次の性格値乱数を使用して、0以上maxValue未満の乱数値を取得します。
ここでいう乱数値とは、性格値乱数をmaxValue倍した値の上位32bitのことです。
このメソッドを呼び出す度に、性格値乱数を1消費します。
このとき、Indexの値が1増加し、Seedの値が更新されます

このメソッドには2個のオーバーロードがあります。
もう1つのメソッドはNext()メソッドですが、戻り値の意味が異なるので注意してください。

【定義】

uint Next(
	uint maxValue
);

【戻り値】
次の性格値乱数を使用して生成した、0以上maxValue未満の乱数値。