2017-10-04 39 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