0
比方說,我想生成使用random.seed(SEED)和ñ到random.random()後續調用N> 10^20號碼。無論SEED的選擇值是否保證生成的序列均勻分佈?random.seed()的每個選擇的種子是否保證隨機會生成一個均勻分佈的序列?
比方說,我想生成使用random.seed(SEED)和ñ到random.random()後續調用N> 10^20號碼。無論SEED的選擇值是否保證生成的序列均勻分佈?random.seed()的每個選擇的種子是否保證隨機會生成一個均勻分佈的序列?
比方說,我想生成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)的後續調用(
因爲底層算法,梅森倍捻機,被設計以產生結果將是從均勻的統計學難以區分行爲。
@BradSolomon如果您在每次調用時重新種子,您實際上正在使用PRNG作爲種子值的哈希函數。除非種子價值本身i.i.d.統一的(在這種情況下,你爲什麼需要PRNG?),但沒有說明結果可能有什麼分佈。 – pjs
我想我跟着你。但在這種情況下,通過1步範圍循環意味着您確實均勻地傳播種子值,對吧?至少經驗來看,結果似乎是一致的。並不是說我完全不願意重新調用「種子」。 –
@BradSolomon一致性不是PRNG的唯一要求。你還需要模仿獨立。作爲一種極端情況,序列1,2,3,4,...將漸近一致,但不會對獨立性進行任何測試。 – pjs