我正在提出一个问题,在街区形成半蒙特卡路。
问题是,当我在一个堂厅内产生多套此类数字时,每组人数最终都是相同的。 我举了一个非常简单的例子。
D = 3;
M = 1000;
numbers = cell(1,4);
mystream = qrandstream(scramble(sobolset(D), MatousekAffineOwen ));
myfun = @(x) qrand(mystream,x);
parfor i = 1:4
numbers{i} = myfun(M);
end
为了证明这一问题,在采用该守则后,编号为{1}、编号为{2}、编号为{3}和编号为{4}的号码与以下数字相同:
>>numbers{1}(1:3,:)
ans =
0.76 0.05 0.77
0.33 0.96 0.23
0.60 0.72 0.52
>> numbers{2}(1:3,:)
ans =
0.76 0.05 0.77
0.33 0.96 0.23
0.60 0.72 0.52
我不禁要问,谁会想解决这一问题。 我的印象是,我必须做些什么,因为当我使用正常的随机数字流时,问题不会发生。
我应该指出,我不可能利用Qusi-Random 溪流的Syp或Leap特性等东西。 原因是,我在我平行运行的大型中型中型中型中型散射器方案中使用上述代码。