2012-05-14 2 views

ответ

5
import random 

def r(minimum, maximum): 
    return minimum + (maximum - minimum) * random.random() 

print r(-1, 1) 

EDIT: @ San4ez-х random.uniform(-1, 1) правильный путь. Не нужно изобретать велосипед ...

Во всяком случае, random.uniform() не кодируется как:

def uniform(self, a, b): 
    "Get a random number in the range [a, b) or [a, b] depending on rounding." 
    return a + (b-a) * self.random() 
+1

определение функции RAND(): возврат 4 # Сгенерировано честным броском. Гарантировано быть случайным. ' –

+0

Большое спасибо. Но cann't я делаю таким образом. Где я хочу передать значение в качестве аргумента при запуске скрипта. . #!/USR/бен/ENV питон импорта SYS, случайный г = sys.argv [1] у = sys.argv [2] печать random.range (у, г) – user1393251

+0

@ user1393251 - вы можете сделать это так (мой метод 'r' называется так же, как и правильный' random.uniform'), просто я изобретаю колесо здесь ... Возьмите ответ Сан-4ez. – eumiro

1

Большинство языков имеют функцию, которая будет возвращать случайное число в диапазоне [0, , 1], которые вы затем можете манипулировать, чтобы выбрать диапазон, в котором вы нуждаетесь. В python функция random.random. Так что для вашего диапазона [-1, 1], то вы можете сделать это:

import random 
random_number = random.random() * 2 - 1 

При удвоении числа мы получаем диапазон [0, 2], и путем вычитания из него единицы, мы получаем [- 1, 1].

2

если вы хотите integer in a specified range:

print random.randrange(-1, 2) 

он использует тот же конвенции, как range, так что верхний предел не входит.

random.uniform делает что-то подобное, если вам нужно плавать значения, но это not always clear если верхний предел включен или не

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