For Gauche 0.9.15Search (procedure/syntax/module):

Next: , Previous: , Up: ライブラリモジュール - SRFI   [Contents][Index]

11.8 srfi.27 - ランダムビットのソース

Module: srfi.27

このモジュールはメルセンヌツイスタアルゴリズム (math.mt-random - Mersenne Twister乱数発生器 参照) を基礎に用いたSRFI-27疑似乱数発生器インタフェースを提供します。

このモジュールが提供する乱数発生源はスレッドセーフです。 複数のスレッドが同じ乱数発生源を使っても内部状態を壊してしまうことはありません。

Function: random-integer n

[SRFI-27]{srfi.27} デフォルトの乱数発生源を用いて、0 から n-1 までの正確な整数の乱数を 返します。この手続きの乱数のシードを設定するには default-random-source に対して random-source-randomize! あるいは、 random-source-pseudo-randomize! を用います。

Function: random-real

[SRFI-27]{srfi.27} デフォルトの乱数発生源を用いて、0 より大きく、1 未満の実数乱数を返します。 この手続きの乱数のシードを設定するには default-random-source に対して random-source-randomize! あるいは、 random-source-pseudo-randomize! を用います。

Variable: default-random-source

[SRFI-27]{srfi.27} random-integer および random-real が利用するデフォルトの 乱数発生源を保持しています。

Function: make-random-source

[SRFI-27]{srfi.27} 乱数の発生源を生成し返します。 現在の Gauche の実装では、これは <mersenne-twister> のオブジェクトです。 将来の実装では変更される可能性があります。

Function: random-source? obj

[SRFI-27]{srfi.27} obj が乱数発生源オブジェクトであれば、#t を返します。

Function: random-source-state-ref s
Function: random-source-state-set! s state

[SRFI-27]{srfi.27} 乱数発生源 s の状態の「スナップショット」を獲得あるいは設定します。 state は背後にある発生器に依存する内容をもつ不透明なオブジェクトです。

Function: random-source-randomize! s

[SRFI-27]{srfi.27} 乱数発生源 s の状態を完全にランダムな状態にしようとします。 現在の実装では乱数のシードを設定するのに、現在の時刻とプロセス ID を 使います。

Function: random-source-pseudo-randomize! s i j

[SRFI-27]{srfi.27} 乱数発生源 s の状態を発生源とは独立した (i, j) 番の 初期状態に設定します。i および j は非負の整数です。 この手続きは乱数発生源 s を二つの非負整数でインデックス付した、 大規模の独立の乱数発生源として再利用するときに利用できます。 この手続きは、完全な決定性があることに注意してください。

Function: random-source-make-integers s

[SRFI-27]{srfi.27} 呼出しのたびに乱数発生源 s より、 0 から n-1 までの整数の 乱数を返す、一つの整数 n を引数としてとる手続きを、返します。

Function: random-source-make-reals s :optional unit

[SRFI-27]{srfi.27} 呼出しのたびに乱数発生源 s から 0 より大きく 1 未満の実数乱数を 返す、無引数の手続きを返します。 unit が与えられた場合、返された手続きが生成する実数乱数は unit 単位に量子化されます。unit は、 0 より大きく 1 未満で なければなりません。


Next: , Previous: , Up: ライブラリモジュール - SRFI   [Contents][Index]


For Gauche 0.9.15Search (procedure/syntax/module):