随机数的产生,是仿真不可缺少的函数,本节是对均匀分布的随机数据进行说明。
通过混合同余法产生均匀分布的随机函数。
a = 2045, c=1, .
是随机数的种子(seed),表示输出,生成的随机数输出。
1. C 语言的直接实现
double uniform (double in_a, double in_b, int *seed)
{
const int a = 2045;
const int c = 1;
const int M = pow(2, 20);
double t;
*seed = a*(*seed)+c;
*seed = *seed - (*seed/M)*M;
t = *seed/M;
t = in_a + (in_a-in_b)*t;
return t;
}