python的random.random()
方法和random.uniform()
方法有什麼區別?random.random()與random.uniform()相同嗎?
random.random()
的結果是不是均勻分佈?
import random
print(random.random() * 10)
print(random.uniform(0,10))
python的random.random()
方法和random.uniform()
方法有什麼區別?random.random()與random.uniform()相同嗎?
random.random()
的結果是不是均勻分佈?
import random
print(random.random() * 10)
print(random.uniform(0,10))
這是random.uniform
從random.py
模塊的定義:
def uniform(self, a, b):
return a + (b-a) * self.random()
所以,是的,這是相同的分佈。
根據documentation,random.random()
在範圍[0,1.0),當random.uniform(a,b)
在範圍[返回一個數字返回一個數字A,B]或[A,B),這取決於在浮點舍入方程a + (b-a) * random()
。
因此print(random.random() * 10)
和print(random.uniform(0,10))
可以給你相同的分配。