【发布时间】:2010-06-14 09:37:06
【问题描述】:
许多随机数生成器返回 0 到 1 之间的浮点数。
在 a 和 b 之间获得 整数 的最佳和正确方法是什么?
【问题讨论】:
-
您是否希望
b在“正常” ([0,1]) 随机数中与1.0一样不可能?还是这个范围内的所有整数都应该有相同的概率? -
@Tim:所有整数应该具有相同的概率。 (这就是让它变得更难的原因。)
-
如果 (B-A) = n,则应将 [0,1] 中的 n+1 个区间(bins)映射到 [A,B] 中的整数 构造区间的方法是取 (n ) 区间 [0,1] 的除法(一个除法,即 0.5 映射到两个连续整数 A,A+1)。如果随机数在区间 (i) 中,则对应的整数为 A+i-1。