random.random()和random.uniform()一样吗?

时间:2016-03-09 02:15:44

标签: python random

python的random.random()方法和random.uniform()方法有什么区别?

random.random()的结果是否均匀分布?

import random

print(random.random() * 10)
print(random.uniform(0,10))

2 个答案:

答案 0 :(得分:3)

这是random.py模块中random.uniform的定义:

def uniform(self, a, b):
    return a + (b-a) * self.random()

所以,是的,它是相同的分布。

答案 1 :(得分:0)

根据documentation,当random.uniform(a,b)返回范围[a,b]或[a,b)中的数字时,a + (b-a) * random()会返回[0,1.0]范围内的数字,取决于等式print(random.random() * 10)中的浮点舍入。

因此,print(random.uniform(0,10))Numpy: two (3000 * 3000) matrix dot product MKL:1s / Normal: 2s Scipy: eigen-decompose (1000 * 1000) matrix MKL 1.5s / Normal: 1.5s 都可以为您提供相同的分配。