如何获得浮点范围之间的随机数?

时间:2011-05-22 13:00:50

标签: python random floating-point

randrange(start, stop)只接受整数参数。那么如何在两个浮点值之间得到一个随机数呢?

5 个答案:

答案 0 :(得分:535)

使用random.uniform(a, b)

>>> random.uniform(1.5, 1.9)
1.8733202628557872

答案 1 :(得分:62)

random.uniform(a, b)似乎就是你要找的东西。来自文档:

  

返回随机浮点数N,使得&lt; = N&lt; = b,a&lt; = b,b&lt; = N&lt; = a,b <&lt;一个。

请参阅here

答案 2 :(得分:20)

如果你想在点的右边生成一个N位数的随机浮点数,你可以这样做:

round(random.uniform(1,2), N)

第二个参数是小数位数。

答案 3 :(得分:6)

通常,您会使用:

import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding

如果需要,Python提供other distributions

如果您已经导入了numpy,则可以使用其等效项:

import numpy as np
np.random.uniform(a, b) # range [a, b)

同样,如果您需要其他发行版,numpy提供与python以及many additional ones相同的发行版。

答案 4 :(得分:1)

根据我处理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

两组代码生成随机浮点数。你可以尝试用它来给你想要的东西。