生成具有自定义区间e,g [-6,6]的准随机序列,而不是默认[0,1]

时间:2018-03-22 06:50:58

标签: r

我使用R的Randtool盒子包来生成准随机序列。 E.g

Halton(2,dim=2)
    Sobol(3,dim=3)..

但我在[0,1]间隔内得到这些序列。 对于halton (3,dim=3)我得到以下输出

0.50 0.3333333  0.2 
0.25 0.6666667  0.4
0.75 0.1111111  0.6

我们可以清楚地看到序列处于[0,1]区间。我们如何生成具有自定义区间的这些准随机序列,例如[-6,6]

例如,我们有随机均匀函数runif (6,min=-6,max=6) this will give the random sequences between the interval [ - 6,6]`。 任何帮助将不胜感激。 谢谢!

2 个答案:

答案 0 :(得分:1)

如果在[0,1]范围内得到随机值a,并且希望它在[x,y]范围内,请执行以下操作:

b = a *(y - x)+ x

对于[-6,6]你会得到:

b = a *(6 - ( - 6))+( - 6)= a * 12 - 6

此值介于-6和6之间。

答案 1 :(得分:0)

要将[0,1]间隔转换为[-6,6],首先乘以12得到[0,12],然后减去6将间隔转换为[-6,6]。简而言之,将Halton或Sobol的每个结果乘以12,然后减去6。