如何获取浮点范围内的随机数?
- 2025-02-08 08:48:00
- admin 原创
- 89
问题描述:
random.randrange(start, stop)
只接受整数参数。那么如何获取两个浮点值之间的随机数?
解决方案 1:
使用random.uniform(a, b):
>>> import random
>>> random.uniform(1.5, 1.9)
1.8733202628557872
解决方案 2:
如果您想要生成一个在点右侧有 N 位数字的随机浮点数,您可以这样做:
round(random.uniform(1,2), N)
第二个参数是小数位数。
解决方案 3:
random.uniform(a, b)
看起来就是你要找的东西。来自文档:
返回一个随机浮点数 N,当 a <= b 时,a <= N <= b,当 b < a 时,b <= N <= a。
请参阅此处。
解决方案 4:
最常见的是,你会使用:
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
如果您需要, Python 还提供其他发行版。
如果你numpy
已经导入,你可以使用其等效项:
import numpy as np
np.random.uniform(a, b) # range [a, b)
同样,如果您需要另一个发行版,numpy
我们提供了与 Python 相同的发行版,以及许多其他发行版。
解决方案 5:
根据我使用 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
这两组代码都会生成随机浮点数。你可以尝试使用它来得到你想要的结果。
解决方案 6:
使用它来获取范围 n 到 m 之间的随机浮点数:
import random
random.uniform(n,m)
如果您想要获得最多 x 位小数的随机浮点数,您可以改用这个:
import random
round(random.uniform(n, m), x)
解决方案 7:
为了完整性:如果您使用 numpy,您还可以在随机数生成器uniform
的实例上调用该方法(现在是 numpy 处理随机数的首选方式)。
import numpy as np
seed = 42
low = 0.12
high = 3.45
rng = np.random.default_rng(seed)
rng.uniform(low, high)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD