2015-05-04 100 views
7

在隨機模塊的python中,random.uniform()random.random()有什麼區別?它們都產生僞隨機數,random.uniform()從均勻分佈產生數字,random.random()產生下一個隨機數。有什麼不同?在python中,random.uniform()和random.random()有什麼區別?

+4

你讀過[文件](https://docs.python.org/2/library/random.html)? 'random.uniform(0,1)'和'random.random()'是一樣的。 – jonrsharpe

+0

有一個區別,由於浮點四捨五入你有時可以達到制服的上限 –

+1

實際上根據文檔他們是不一樣的...... –

回答

3

區別在於參數。從範圍[0.0,1.0)的均勻分佈生成一個隨機數很常見,因此random.random()只是這樣做的。使用random.uniform(a, b)指定不同的範圍。

1

據對random.uniform文檔:

返回一個隨機浮點數N,使得< = N < = B爲一個< = B和B < = N < =一個對於b <一個。

random.random

返回範圍[0.0下一隨機浮點數,1.0)。

I.e.與random.uniform你指定一個範圍,你可以從中例如僞隨機數字。 3和10. random.random之間你得到一個號碼0和1之間

17

random.random()給你在如此包括0.0,但不包括其中1.0也被稱爲半開放式的範圍[0.0, 1.0)(一個隨機浮點數範圍)。 random.uniform(a, b)給你一個範圍爲[a, b]的隨機浮點數,(舍入可能最終會給你b)。

implementation of random.uniform()使用random.random()直接:

def uniform(self, a, b): 
    "Get a random number in the range [a, b) or [a, b] depending on rounding." 
    return a + (b-a) * self.random() 

random.uniform(0, 1)基本上是同樣的事情random.random()(如1.0浮點值最接近1.0仍然會給你浮點值最接近1.0沒有出現舍入錯誤的可能性)。

3

random.random()輸出位於0 & 1之間,並且它沒有輸入參數

鑑於random.uniform()採用參數,其特徵在於,可以提交隨機的範圍數。 例如
import random as ra print ra.random() print ra.uniform(5,10)

OUTPUT: -
0.672485369423 7.9237539416

相關問題