2017-01-22 60 views
2

我需要選擇蟒蛇在兩個範圍的隨機浮點數獲得一個隨機浮點數:如何從兩個範圍(蟒蛇)

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

通過採取一個單一的範圍,如'[0; 0.4]'並將其映射到所需的? – spectras

+0

它需要從上或其他 – SelmaB

回答

2

你可以做一個加權選擇的間隔之間:

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) 
2

0 < n < 0.4創建一個隨機數和該區間的上半部分映射到所需的範圍。

nbr = random.uniform(0, 0.4) 
if nbr >= 0.2: 
    nbr += 0.6