random.randrange(start, stop)
只接受整数参数。那么,我该如何在两个浮点数之间获取一个随机数呢?random.randrange(start, stop)
只接受整数参数。那么,我该如何在两个浮点数之间获取一个随机数呢?使用random.uniform(a, b)函数:
>>> import random
>>> random.uniform(1.5, 1.9)
1.8733202628557872
.uniform
函数,而是使用.random
或randrange
来完成这个任务? - EnigmaTech1.5 + random.random() * (1.9 - 1.5)
应该可以,尽管根据规范,这即使在理论上也永远不会返回恰好 1.9
。 - Yonatan Nuniform(a, b)
是通过a + (b-a) * random()
实现的,并返回a random number in the range [a, b) or [a, b] depending on rounding。https://github.com/python/cpython/blob/963eb0f4738456455b9bef7eb531b46805415208/Lib/random.py#L415 - Pavel如果你想生成一个保留N位小数的随机浮点数,可以这样做:
round(random.uniform(1,2), N)
第二个参数是小数点后的位数。
根据我处理Python的经验,我只能说随机函数有助于生成随机浮点数。以以下示例为例;
import random
# Random float number between range 15.5 to 80.5
print(random.uniform(15.5, 80.5))
# between 10 and 100
print(random.uniform(10, 100))
The random.uniform() function returns a random floating-point number between a given range in Python
这两组代码可以生成随机浮点数。您可以尝试实验它以获得您想要的结果。
import random
random.uniform(n,m)
import random
round(random.uniform(n, m), x)
np.random.uniform(start, stop)
或np.random.uniform(start, stop, samples)
(如果您需要多个样本)。否则,以下答案是最佳的。 - sachinruk[0,2*pi)
之间的均匀随机数? - Rajesh Swarnkar