关于random.uniform
,docstring说:
获取[a,b]或[a,b]范围内的随机数,具体取决于舍入。
但我不知道'取决于四舍五入'究竟是什么意思。
答案 0 :(得分:7)
current documentation for random.uniform()
读取:
返回一个随机浮点数
N
,a <= N <= b
为a <= b
,b <= N <= a
为b < a
。结束点值
b
可能包含也可能不包含在范围内,具体取决于等式a + (b-a) * random()
中的浮点舍入。
计算机上的浮点运算在精度上受到限制,由此不精确引起的舍入误差可能导致b
不包含在用于uniform()
返回的随机值的整个值范围内。 / p>
random.random()
返回介于0.0(含)和1.0(不包含)之间的值。 a
和b
有一些值,其中总和a + (b-a) * (1.0 - epsilon/2)
的浮点计算不等于b
,但是更低 > b
,而对于其他组合,总和 等于b
。 epsilon
是您平台上浮点数的最低精度(请参阅sys.float_info
),1.0 - epsilon/2
可以返回最大值random.random()
。
如果您对为什么计算机上的浮点算法的详细信息感兴趣,我可以推荐以下两篇文章:
答案 1 :(得分:-1)
rounding
是:如果我向上舍入3.45,我将得到4.但如果我向下舍入,我将得到3.所以在这种情况下,来自[或]的范围值将根据在一轮