这会在Ruby中生成一个具有一定精度级别的随机浮点数:
def generate(min,max,precision)
number = rand * (max - min) + min
factor = 10.0 ** precision
return (number * factor).to_i / factor
end
最近有人建议我这样做可能更简单:
var = rand(100) * 1.0
var /= 10
从0.0到10.0生成随机浮点数。
这听起来不错,但我不确定如何使用该方法控制精度等级。我怎样才能使用与我的第一种方法相同的方法,但是使用这个建议?
答案 0 :(得分:2)
如果您的范围为x1
到x2
,并且您想要增量的最小增量("精度"),那么您需要
n = (x2 - x1)/delta +1
使用
缩放的不同整数rand(n) * delta + x1
在x1
和x2
之间提供随机数,增量为{{1}}
你如何定义&#34;精度&#34;? <{1}}和delta
之间的关系(根据您的公式)由
delta
或者
precision