[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
math.mt-random
- Mersenne Twister乱数発生器 Makoto MatsumotoとTakuji Nishimuraにより開発された、 “Mersenne Twister”アルゴリズムに基づく、 仮想的な乱数発生器(RNG)を提供します。 高速で、2^19937-1という極めて長大な周期を持ちます。 アルゴリズムの詳細については、MTを参照して下さい。
Mersenne Twister RNGの状態をカプセル化するクラスです。 このクラスのそれぞれのインスタンスは独自の状態を持ち、 個別のシードで初期化されていれば、それぞれがランダムビットの 独立したソースになり得ます。
ランダムシードの値は初期化引数:seed
により初期化時に与えるか、
以下で説明するmt-random-set-seed!
を使います。
(define m (make <mersenne-twister> :seed (sys-time))) (mt-random-real m) ⇒ 0.10284287848537865 (mt-random-real m) ⇒ 0.463227748348805 (mt-random-real m) ⇒ 0.8628500643709712 … |
Mersenne Twister RNG mtにランダムシードの値seedをセットします。
seedは任意の正の正確整数か、任意長のu32vector
(srfi-4
- 単一型のベクタ参照)が使えます。
整数の場合は、初期化のために低位の32ビットが使われます。
u32vectorの場合は、初期化のために624までの要素が使われます。
Mersenne Twister RNG mtを取り出して再インストールします。
状態は、625要素のu32vectorで表現されます。
状態はどこにでも保存することができ、仮想的なランダムシーケンスの
生成を続行するために、<mersenne-twister>
のインスタンスとして
リストアできます。
0.0と1.0の間のランダムな実数を返します。
1.0は範囲に含まれません。
mt-random-real
は、0.0も範囲に含みませんが、
mt-random-real0
は含みます。
0.0を含まないのは、SRFI-27ドラフトに依拠しています。
0からrange-1までの正の正確整数をランダムに返します。 rangeはいかなる正の正確整数でも構いません。
与えられたユニフォームベクタをランダムな数値で埋めます。
mt-random-fill-u32vector!
では、要素は0と2^32-1の間の
正の正確整数で埋められます。
mt-random-fill-f32vector!
とmt-random-fill-f64vector!
では、0.0と1.0(含まれない)の間の不正確実数で埋められます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.