一.功能
使(a,b )区间产生均匀分布的随机数。
二、方法介绍
均匀分布的概率密度函数
[f(x )=(left ({begin {矩阵} )
frac{1}{b-a},aleq xleq b\
0,others
end{matrix}right。
() ) ) )。
通常用(u ) a,b ) )表示。 均匀分布的平均值为(FRAC{ab}{2} )、方差值为) (FRAC ) ) (a-b ) ^{2}}{12})。
生成均匀分布随机数的方法如下。
首先,根据给定的初始值((x_{0} ) ),使用混合同余法:
[left{begin {矩阵} ]
x_{I}=(ax_{I-1}c ) ) mod M )
y_{i}=x_{i}/M
end{matrix}right。
() ) ) )。
发生(0,1 )区间上的随机数((y_{I} )。 其中,a=2045,c=1,(m=2^{20}; 之后,通过(y_{i}=a(B-a ) y_{i})变换,产生(a,b )区间的随机数) ) z_{I} )
三.使用说明
生成在(a,b )区间均匀分布的随机数的c函数:
/**************************
a---规定区间下限
b---规定区间上限
seed---随机数种子
* * * * * * * * * * * * * * *
双统一(双精度、双精度b、长整型*秒) )。
{
双精度t;
*seed=2045*(seed ) 1;
*seed=*seed-(*seed/1048576;
t=*seed(/1048576.0;
t=a(B-a ) ) t;
返回(t;
}