【问题标题】:Change interval of random number generator随机数发生器的变化间隔
【发布时间】:2012-11-15 22:02:08
【问题描述】:

给定一个随机数生成器r(),它在区间[0,1] 中产生一个(伪)随机double,密度均匀,即p(x) = 1 用于0 <= x <= 1p(x) = 0 在别处,创建一个随机数生成器r(a,b)[a,b] 的区间内生成doublea <= x <= b 的密度为p(x) = 1/(b-a)

【问题讨论】:

标签: algorithm random


【解决方案1】:

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

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

但是还有其他更明显的方法吗?

是的:

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

【讨论】:

  • 也不对。它不会在 [b-1,b) 中生成数字
  • 应该是 (... mod (b-a + 1)) ... ?
  • 这也取决于你如何定义实数的模数。
猜你喜欢
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 2020-10-12
相关资源
最近更新 更多