randrange(start, stop)
принимает только целочисленные аргументы. Так как же получить случайное число между двумя значениями с плавающей запятой?
python
random
floating-point
Богомол тобогган
источник
источник
np.random.uniform(start, stop)
илиnp.random.uniform(start, stop, samples)
если вы хотели несколько образцов. В противном случае ниже ответы являются лучшими.Ответы:
Используйте random.uniform (a, b) :
источник
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a
другими словами, выходN
может совпадать с входным значениемa
иb
. В этом случае1.5
и1.9
..uniform
функции, но с помощью либо.random
илиrandrange
?1.5 + random.random() * (1.9 - 1.5)
должен это делать, даже если согласно спецификациям это никогда не вернется точно1.9
(даже теоретически).uniform(a, b)
, реализован какa + (b-a) * random()
и возвращает случайное число в диапазоне [a, b) или [a, b] в зависимости от округления github.com/python/cpython/blob/…random.uniform(a, b)
кажется, что вы ищете. Из документов:Смотрите здесь .
источник
если вы хотите сгенерировать случайное число с N цифрами справа от точки, вы можете сделать это:
Второй аргумент - это количество десятичных знаков.
источник
Чаще всего вы используете:
Python предоставляет другие дистрибутивы, если вам нужно.
Если вы уже
numpy
импортировали, вы можете использовать его эквивалент:Опять же, если вам нужен другой дистрибутив,
numpy
предоставляет те же дистрибутивы, что и для Python, а также множество дополнительных .источник