【问题标题】:Will random numbers still be random if I systematically delete every nth one?如果我系统地删除每第 n 个随机数,随机数仍然是随机的吗?
【发布时间】:2013-12-16 17:58:54
【问题描述】:

我目前正在使用numpy.random.random_sample 来计算大量随机数。例如,如果我删除这些数字的十分之一,结果是否仍会像以前一样随机?或者我会通过这样做引入某种偏差?

编辑:正如所指出的,这归结为我的 RNG 有多好。如何确定我是否可以信任 RNG,或者如何发现潜在的偏差?

【问题讨论】:

  • 如果结果很容易产生偏差,那它就不是一个很好的随机数生成器了。
  • 您的结果将具有 90% 的样本大小。如果您信任您的 PRNG,那么这可能会减少随机性,但不会减少随机性;)
  • P.S. numpy.random 使用了 Mersenne Twister algorithm,这被认为是非常好的。

标签: python random numpy


【解决方案1】:

如果它们从一开始就无法与真正的随机区分开来,那么它们将与真正的随机区区分开来。

原因是其余数字之间存在的任何相关性或偏差构成完整集合之间的相关性或偏差。因此,如果完整的集合是好的,那么子集就是好的。

当然,如果您根据数字的值而不是仅根据它们在序列中的位置选择性地删除数字,则不一定是这种情况。

此外,如果数字一开始就不是好,那么可以想象它们之后可能会比以前更糟。举一个极端的例子,考虑一个序列,该序列由 9 个零和抛硬币的结果、9 个零和另一个抛硬币的结果组成,等等。这个数据源有一些熵(每 10 个值 1 位),但是如果你删除每个第 10 个元素则没有(剩余的输出是预先知道的)。

【讨论】:

    猜你喜欢
    • 2012-10-04
    • 2015-09-10
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多