【发布时间】:2011-11-01 15:58:13
【问题描述】:
假设你有一个随机数生成器,它生成一个介于 [0.0, 1.0) 之间的随机浮点数,例如drand48,你怎么能创建一个生成一个介于 [1, n] 之间的整数的随机数生成器。
【问题讨论】:
-
我认为
drand48会从 [0,1] 而不是 [0,1) 生成一个数字,那么您真正拥有的是什么?是的,这很重要。 -
也许应该明确说明(或否认)分布应该均匀的基本假设。虽然 Open Group 将 the range of drand48 记录为 [0.0,1.0] 上的统一,但返回 1.0 的相应概率可以忽略不计。为了准确起见,我们可能会调用
drand48,直到获得小于 1.0 的结果。