代码之家  ›  专栏  ›  技术社区  ›  rook

随机数分析

  •  8
  • rook  · 技术社区  · 14 年前

    给定一系列随机生成的数据,我如何才能计算出它的实际随机性?R-lang是这个matlab的好工具吗?对于随机生成的数据,这些工具还能回答哪些其他问题?还有更好的工具吗?

    6 回复  |  直到 14 年前
        1
  •  10
  •   Dirk is no longer here    14 年前

    这个 DieHarder test battery 由Robert G.Brown——重新实现并扩展了Marsaglia等人的旧Diehard——已经被包装在R包中。 RDieHarder 你可以从这个开始。

    注意 RDIEharder公司 版本需要它们的特殊匹配 DieHarder 发布——我们还没有发布最新的开发版本。

    编辑 另外,对于 密码学 测试时,NIST套件(包含在Dieharder中)应该是合适的,因为这正是它的设计目的。

        2
  •  5
  •   Richie Cotton Joris Meys    14 年前

    首先,你需要决定你在测试什么样的随机性。你想在某个范围内有一个统一的分布吗?这通常是人们的想法,尽管你可能有一些其他的随机性,如正态分布。

    一旦你有了一个候选分布,你就可以测试这个分布的拟合优度。Kolmogorov-Smirnov试验是一种很好的通用试验。我相信它叫 ks.test 但我也相信它假定了不同的值,所以如果从如此小的值范围中取样,相同的值会出现多次,这可能是个问题。

    S.Lott提到了Knuth的 Seminumerical Algorithms 在评论中。这本书对卡方检验和柯尔莫戈洛夫-斯米尔诺夫检验的拟合优度有很好的介绍。

    如果你怀疑你有统一的随机值,德克·艾德布埃特提到的迪哈德测试是一个标准测试。

        3
  •  4
  •   Amro    14 年前

    根据维基百科( Randomness ):

    中心思想是 位是随机的,如果且仅当它是随机的 比任何计算机程序都短 能产生那根弦(科尔莫戈罗夫 随机性)这意味着随机性 字符串是不能 压缩的。

    因此,给定随机的数字流,将其保存到一个文件中,并使用您最喜欢的工具(zip、rar,…)压缩它。压缩比可以解释为随机性的度量。更好的是,我将它作为一个相对分数来比较两个数据系列的随机性。

        4
  •  3
  •   John D. Cook    14 年前

    我推荐阅读 Chapter 10 属于 Beautiful Testing :测试随机数生成器。这比关于这个话题的大多数文章都要平易近人一点。也许,如果我们很好的话,那一章的作者,约翰·库克,可能会停下来,给出他的意见。

        5
  •  1
  •   zellus    14 年前

    像往常一样 toolbox 为了它。

        6
  •  1
  •   Vishal Belsare    14 年前

    从理论上讲,Knuth的上述参考资料是有用的,为了联系Amro的反应,李维塔尼的工作与此相关。 link text