Java中是否有测试序列非随机性的软件?

Java中是否有测试序列非随机性的软件?,java,testing,random,statistics,Java,Testing,Random,Statistics,我正在寻找一个Java程序或库,能够找到字节序列的非随机属性。如果数据显示出任何规律性,那么在给定一个大文件时,会运行一些统计测试和报告 我知道三个这样的程序,但不是Java。我尝试了所有这些方法,但它们似乎对我不起作用(这是相当令人惊讶的,因为其中一种是由NIST提出的)。其中最老的一个很好用,但使用起来有点困难。正如一些评论者所说,这确实是一个专家级的数学问题。我能为您找到的最简单的解释是: 这很有趣,但当它使用“正面或反面”来简化其示例时,您会发现您需要更深入地将相同的理论应用于加密/

我正在寻找一个Java程序或库,能够找到字节序列的非随机属性。如果数据显示出任何规律性,那么在给定一个大文件时,会运行一些统计测试和报告


我知道三个这样的程序,但不是Java。我尝试了所有这些方法,但它们似乎对我不起作用(这是相当令人惊讶的,因为其中一种是由NIST提出的)。其中最老的一个很好用,但使用起来有点困难。

正如一些评论者所说,这确实是一个专家级的数学问题。我能为您找到的最简单的解释是:


这很有趣,但当它使用“正面或反面”来简化其示例时,您会发现您需要更深入地将相同的理论应用于加密/密码学等-但这是一个良好的开端。

另一种方法将使用。可以从数据集中提取模糊关联规则。这些规则的基本含义如下:

如果A接B,解释为“如果01101(存在),则1111(将随后出现)”

在谷歌上搜索“模糊数据挖掘”/“提取模糊关联规则”应该可以得到足够多的结果

事实上,您的问题域相当大,因为这就是数据/文本挖掘的全部内容。还有统计和组合分析,仅举几个例子


关于一个这样做的程序-看一看

与其说是对你的问题的回答,不如说是对你关于
任何可观察到的模式都是不好的
的评论的回答。这让我想到随机性不是问题,而是可观察的模式,要解决这个问题,你当然需要观察者。所以,简而言之,只需建立一个网站并众包它


此技术应用于颜色命名的一些示例:和

您特别希望运行什么测试?为什么您需要知道这一点?您是否正在尝试查看该文件是否可以进一步压缩?这是一个很好的问题,我只是好奇实际上,我能得到的一切。我想测试和调整PRNG,所以任何可观察到的模式都是不好的。调整是我想将其集成到程序中的原因。这既不是家庭作业,也不是严肃的工作,只是我感兴趣的东西。@maaartinus:问题是“当试图制作一个新的PRNG时”的说法:这是专家的领域。现有的具有众所周知特征的产品有什么问题?创建自己的PRNG就像创建自己的加密方案;它几乎肯定会有缺陷。在本页提到的那些问题中,自相关可能是最容易实现的。@biziclop:谢谢,我已经添加了一个指向我答案的直接链接。