如何在闭区间[0,1]之间生成随机数?

时间:2019-04-05 12:39:43

标签: python-3.x random

我需要获取封闭时间间隔[0,1]之间而不是开放时间间隔之间的躯体随机值。有什么办法可以做到?

可以吗?

2 个答案:

答案 0 :(得分:0)

首先,尝试:import random (random.randint(0,10**6)*1.0 /10**6) 这将为您提供完整的浮点精度。 否则,请尝试:

导入十进制

def randfloat():
    decimal.getcontext().prec = 10  # 10 decimal points enough?!
    return decimal.Decimal(0) + decimal.Decimal(random.uniform(0, 1))
# this should include both boundaries as float gets close enough to 1 to make decimal round

>>> decimal.Decimal(0) + decimal.Decimal(0.99999999999)
Decimal('1.000000000')

而Uniform()显然可以保证包含下边界

答案 1 :(得分:0)

您可以使用:

random.uniform(0, 1)

注意:调用N = random.uniform(a, b)时,行为始终是a <= N <= b,但端点值b可能会也可能不包括在范围内,具体取决于浮点舍入。

请参见https://docs.python.org/3/library/random.html?highlight=uniform#random.uniform