我需要在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))
如果有人可以提供帮助......!
答案 0 :(得分:4)
您可以在间隔之间进行加权选择:
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)
答案 1 :(得分:3)
在0 < n < 0.4
中创建一个随机数,并将该时间间隔的上半部分映射到您想要的范围。
nbr = random.uniform(0, 0.4)
if nbr >= 0.2:
nbr += 0.6