

#include <nitro/math/rand.h>
typedef struct
{
u64 x;
u64 mul;
u64 add;
}
MATHRandContext32;
typedef struct
{
u32 x;
u32 mul;
u32 add;
}
MATHRandContext16;
| x | 現在の乱数値を保持しています。 MATH_Rand*()ではこの値をシフトした値を取得します。 |
| mul | 線形合同法にて、次の乱数を取得するために乗算される数を設定します。MATH_InitRand*()で固有の定数に初期化されますので、この値を変更する場合には、その後このメンバを変更してください。 |
| add | 線形合同法にて、次の乱数を取得するために加算される数を設定します。MATH_InitRand*()で固有の定数に初期化されますので、この値を変更する場合には、その後このメンバを変更してください。 |
線形合同法による乱数のコンテキスト構造体です。
MATHRandContext32()では内部で64ビットの値を保持し、MATH_Rand32()で32ビットの乱数を取得します。
MATHRandContext16()では内部で32ビットの値を保持し、MATH_Rand16()で16ビットの乱数を取得します。
Ver. 2004/12/13 初版