2017-01-22 25 views
2

мне нужно выбрать случайное число с плавающей точкой в ​​двух диапазонах в Python:Как получить одно случайное число с плавающей точкой из двух диапазонов (Python)

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

Прямо сейчас у меня есть только один диапазон:

random.uniform(0, 0.2) 

полная линия (я картирование теплые значения цвета ВПГ):

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 

 Смежные вопросы

  • Нет связанных вопросов^_^