如何从两个范围中获取一个随机浮点数(python)

我需要在python中选择两个范围内的随机浮点数:

0. < n < 0.2  or  0.8 < n < 1.

现在我只有一个范围:

random.uniform(0, 0.2)

整行(我映射暖色hsv值):

couleur = hsv2rgb(random.uniform(0, 0.2), 1, 1))

如果有人可以帮忙……!

最佳答案
您可以在间隔之间进行加权选择:

from numpy import random

def uniform_two(a1, a2, b1, b2):
    # Calc weight for each range
    delta_a = a2 - a1
    delta_b = b2 - b1
    if random.rand() < delta_a / (delta_a + delta_b):
        return random.uniform(a1, a2)
    else:
        return random.uniform(b1, b2)

print uniform_two(0, 0.2, 0.8, 1)

转载注明原文:如何从两个范围中获取一个随机浮点数(python) - 代码日志