1

给定一个随机数生成器,它在具有均匀密度的区间(即for和其他地方r())中生成(伪)随机数,创建一个随机数生成器,它在密度为的区间中生成 a 。double[0,1]p(x) = 10 <= x <= 1p(x) = 0r(a,b)double[a,b]p(x) = 1/(b-a)a <= x <= b

4

1 回答 1

-1

我相信(并且已经测试过)这会产生均匀的分布。

r(a,b) = ((r * b) mod (b-a)) + a

但是还有另一种更明显的方法吗?

是的:

r(a, b) = r*(b-a) + a
于 2012-11-15T22:02:08.693 回答