#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!