Как выбирать случайным образом между двумя значениями?

#python #numpy

#python #numpy

Вопрос:

Итак, в основном я пытаюсь получить фрагмент кода для случайного выбора между двумя значениями -40 и 40.

Для этого я думал использовать старую добрую математику, такую как —

random_num = ((-1) ^значение)*40, где value = {1, 2}.

random_num, как следует из названия, должно быть случайным числом.

Любая помощь?

Я использую python, решение с использованием библиотек приемлемо.

Комментарии:

1. import random random.randint(-40,40) вы уже пробовали это?

2. Вы хотите значения в диапазоне от -40 до 40 или выбрать -40 или 40?

3. @yatu выглядит для меня неоднозначно

4. тогда просто np.random.choice([-40,40])

5. Почему так много программистов добавляют накладные расходы NumPy, когда стандартная библиотека предоставляет идеальное решение?

Ответ №1:

Если вам нужны случайные целочисленные значения от -40 до 40, то

 import random
random.randint(-40, 40)
  

https://docs.python.org/3.1/library/random.html#random.randint

Если вы хотите выбрать либо -40, либо 40, то

  import random
 random.choice([-40, 40])
  

https://docs.python.org/3/library/random.html#random.choice

Если вы действительно предпочитаете использовать свою реализацию выбора либо 1, либо 2, как в вашем вопросе, затем подключите эти значения в методе random.choice.

Предоставлены вышеуказанные решения, поскольку я чувствую, что в вопросе есть некоторая двусмысленность.

Ответ №2:

Предполагая, что это L список значений, из которых вы хотите выбрать, то random.choice(L) выполнит задание.

В вашем случае:

 import random
L = [-40, 40]
print(random.choice(L))
  

Ответ №3:

Для достижения этого вы можете использовать choices функцию в python. Если вы хотите, чтобы значения были выбраны равными только -40 или 40, вторым аргументом является вероятность / веса.

 from random import choices
choices([-40,40], [0.5,0.5])
  

Комментарии:

1. OP хочет либо -40, либо 40, а не значение между -40 и 40.

2. @Guybrush обновил мой ответ. Это должно быть нормально

3. Я не думаю, что здесь choices следует отдавать предпочтение choice , потому что первое возвращает список выбранных элементов (даже если есть только один элемент). Это означает, что OP придется делать x = choices(...)[0] там x = choice(...) , где этого достаточно, проще и читабельнее 😉

4. Согласен @Guybrush!