2017-10-04 74 views

回答

3

比方說,我想生成N> 10^20號

比方說沒有。如果你每秒可以產生十億個值,那就需要1E20 values/1E9 values per second/3600 seconds per hour/24 hours per day/365.25 days per year,這是3000多年。即使你擁有可靠的硬件和能源,你也不會在那裏看到結果。

使用random.seed(SEED)和n至random.random)的後續調用(

因爲底層算法,梅森倍捻機,被設計以產生結果將是從均勻的統計學難以區分行爲。

+0

@BradSolomon如果您在每次調用時重新種子,您實際上正在使用PRNG作爲種子值的哈希函數。除非種子價值本身i.i.d.統一的(在這種情況下,你爲什麼需要PRNG?),但沒有說明結果可能有什麼分佈。 – pjs

+0

我想我跟着你。但在這種情況下,通過1步範圍循環意味着您確實均勻地傳播種子值,對吧?至少經驗來看,結果似乎是一致的。並不是說我完全不願意重新調用「種子」。 –

+0

@BradSolomon一致性不是PRNG的唯一要求。你還需要模仿獨立。作爲一種極端情況,序列1,2,3,4,...將漸近一致,但不會對獨立性進行任何測試。 – pjs