前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFXLCGRandom
線形合同法により乱数を生成するクラスです。
#include <SFXLCGRandom.h.hpp>
class SFXLCGRandom;
SFMTYPEDEFCLASS(SFXLCGRandom)

解説

線形合同法と 48 ビット整数演算により、擬似乱数を高速に生成します。

使用例

// シードを設定しない場合
// シードは現在の時刻を元に設定される
SFXLCGRandom random;

// UINT32_MINIMUM 〜 UINT32_MAXIMUM の間の数
SInt32 n1 = random.GetSInt32(); // 乱数を取得する

random.Randomize(3456);         // シードを設定

// 0 〜 UINT08_MAXIMUM の間の数
UInt08 n2 = random.GetUInt08(); // 乱数を取得する

メンバ

コンストラクタ/デストラクタ
SFXLCGRandom( UInt32 seed = 0 )
SFXLCGRandom クラスのコンストラクタです。
パブリック関数
Bool GetBool( Void )
Bool 型の乱数を生成します。
Float32 GetFloat32( Void )
Float32 型の乱数を生成します。
Float64 GetFloat64( Void )
Float64 型の乱数を生成します。
SInt08 GetSInt08( Void )
SInt08 型の乱数を生成します。
SInt16 GetSInt16( Void )
SInt16 型の乱数を生成します。
SInt32 GetSInt32( Void )
SInt32 型の乱数を生成します。
UInt08 GetUInt08( Void )
UInt08 型の乱数を生成します。
UInt16 GetUInt16( Void )
UInt16 型の乱数を生成します。
UInt32 GetUInt32( Void )
UInt32 型の乱数を生成します。
Void Randomize( UInt32 seed = 0 )
乱数の種を設定します。

SFXLCGRandom::SFXLCGRandom
SFXLCGRandom クラスのコンストラクタです。
[ public, explicit ]
SFXLCGRandom(
    UInt32 seed = 0   // 乱数の生成に使用する種
);

解説

seed に 0 を指定した場合、デバイスに電源が投入されてから経過した時間などを元に、 自動的に種が設定されます。 ただし、時間を取得できない場合には、seed = 0x1234ABCD になります。


SFXLCGRandom::GetBool
Bool 型の乱数を生成します。
[ public ]
Bool GetBool(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最下位から 41 ビット目を Bool 型に変換して返します。


SFXLCGRandom::GetFloat32
Float32 型の乱数を生成します。
[ public ]
Float32 GetFloat32(Void);

戻り値

戻り値は 0 以上 1 未満の値をとります。

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数を 281474976710656 で割った値を Float32 型に変換して返します。


SFXLCGRandom::GetFloat64
Float64 型の乱数を生成します。
[ public ]
Float64 GetFloat64(Void);

戻り値

戻り値は 0 以上 1 未満の値をとります。

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数を 281474976710656 で割った値を Float64 型に変換して返します。


SFXLCGRandom::GetSInt08
SInt08 型の乱数を生成します。
[ public ]
SInt08 GetSInt08(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 8 ビットを SInt08 型に変換して返します。


SFXLCGRandom::GetSInt16
SInt16 型の乱数を生成します。
[ public ]
SInt16 GetSInt16(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 16 ビットを SInt16 型に変換して返します。


SFXLCGRandom::GetSInt32
SInt32 型の乱数を生成します。
[ public ]
SInt32 GetSInt32(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 32 ビットを SInt32 型に変換して返します。


SFXLCGRandom::GetUInt08
UInt08 型の乱数を生成します。
[ public ]
UInt08 GetUInt08(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 8 ビットを UInt08 型に変換して返します。


SFXLCGRandom::GetUInt16
UInt16 型の乱数を生成します。
[ public ]
UInt16 GetUInt16(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 16 ビットを UInt16 型に変換して返します。


SFXLCGRandom::GetUInt32
UInt32 型の乱数を生成します。
[ public ]
UInt32 GetUInt32(Void);

解説

符号なしの 48 ビット整数の乱数を生成し、その乱数の最上位から 32 ビットを UInt32 型に変換して返します。


SFXLCGRandom::Randomize
乱数の種を設定します。
[ public ]
Void Randomize(
    UInt32 seed = 0   // 乱数の生成に使用する種
);

解説

seed に 0 を指定した場合、デバイスに電源が投入されてから経過した時間などを元に、 自動的に種が設定されます。 ただし、時間を取得できない場合には、seed = 0x1234ABCD になります。