2016-09-16 35 views

回答

9

按文檔,它

它產生53位精度

而梅森倍捻機它是基於擁有巨大的狀態空間,比這個大很多倍。它還經常通過位獨立性的統計測試(在設計用於識別RNG輸出中的模式的程序中)。分佈基本上以相等的概率均勻,任何位將是0或1。

越來越精確0.0的概率將是1在2^53(假定未知的內部狀態)

+0

優秀!這將在所有平臺上保持一致嗎?由於對算法或精度的約束,是否可能有更高的機會? – dexgecko

+1

@dexgecko:我認爲它將在大多數Python版本和平臺上保持一致,因爲它們都在源代碼中完全實現Mersenne Twister算法,它不是操作系統或共享庫調用。您可以使用例如'random.seed(12345)',並看到來自'random.random()'的幾個調用的輸出 - 我期望這將在各種Python實現中保持一致。 –

+1

但是,如果你使用'random.SystemRandom'(你應該使用它),這是一個不同的故事。這可能在很大程度上取決於操作系統,CPU和其他因素(熵源)。但是,它應該或多或少地給出幾乎相同的概率。 – freakish