Я начинаю изучать python, я пытался генерировать случайные значения, передавая отрицательное и положительное число. Скажем, -1
, 1
.Как генерировать отрицательное случайное значение в python
Как это сделать в python?
Я начинаю изучать python, я пытался генерировать случайные значения, передавая отрицательное и положительное число. Скажем, -1
, 1
.Как генерировать отрицательное случайное значение в python
Как это сделать в python?
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()
Использование random.uniform(a, b)
>>> import random
>>> random.uniform(-1, 1)
0.4779007751444888
>>> random.uniform(-1, 1)
-0.10028581710574902
Большинство языков имеют функцию, которая будет возвращать случайное число в диапазоне [0, , 1], которые вы затем можете манипулировать, чтобы выбрать диапазон, в котором вы нуждаетесь. В python функция random.random
. Так что для вашего диапазона [-1, 1], то вы можете сделать это:
import random
random_number = random.random() * 2 - 1
При удвоении числа мы получаем диапазон [0, 2], и путем вычитания из него единицы, мы получаем [- 1, 1].
если вы хотите integer in a specified range:
print random.randrange(-1, 2)
он использует тот же конвенции, как range
, так что верхний предел не входит.
random.uniform
делает что-то подобное, если вам нужно плавать значения, но это not always clear если верхний предел включен или не
Вы также можете сделать что-то вроде этого
import random
random.choice([-1, 1])
определение функции RAND(): возврат 4 # Сгенерировано честным броском. Гарантировано быть случайным. ' –
Большое спасибо. Но cann't я делаю таким образом. Где я хочу передать значение в качестве аргумента при запуске скрипта. . #!/USR/бен/ENV питон импорта SYS, случайный г = sys.argv [1] у = sys.argv [2] печать random.range (у, г) – user1393251
@ user1393251 - вы можете сделать это так (мой метод 'r' называется так же, как и правильный' random.uniform'), просто я изобретаю колесо здесь ... Возьмите ответ Сан-4ez. – eumiro