一、采用混合同余法生成随机数
根据要求生成100个[0,1]内的均匀分布随机数,且运用混合同于法,混合同于法为线性同余法中的一种方法,混合同余法的迭代公式如下:
其中,若 和 不为0,则为混合同余法;若 和 不为0,则称为乘同余法。
根据上述方法利用matlab编程得到生成均匀分布函数fangzheng3如下程序:
function f=fangzheng3(a,c,m,x)
A=zeros(1000,1);
n=1;
while n<=1000
n=n+1;
x=rem((a*x+c),m);
r=x/1000;
A(n-1,1)=r;
End
运行如下:
fangzheng3(97,3,1000,71)得到的结果见附表1,部分结果如下表1:混合同余法生成随机数部分结果表:
表1:混合同余法生成随机数部分结果表:
序号
随机数
序号
随机数
序号
随机数
序号
随机数
序号
1
0.89
101
0.39
201
0.89
301
0.39
401
2
0.333
102
0.833
202
0.333