java – 在数字列表中测试随机性

我有一个0到9之间的数字列表.这个数字有100万.我试图测试这些数字是否是随机的,或者存在隐藏的现有模式.获得结果后,我使用Chi Squared Test来确定值是否是随机的.

测试已经完成:

计数

>计算每个数字重复的次数. (即:0:100000次,1:99868次…)

差距

>检查重复数字之间的差距. (示例:数字0 – 07860在0再次重复之前有3的间隙.因此计算0的间隙 – 间隙2:12647次,间隙3:4500次…..)

串行

>检查串行模式. 2,3,4的模式一直到30.(示例模式3对于这些数字 – 7856743:检查模式785,856,567 ……)

扑克

>检查扑克模式.模式2,3,4一直到30.(示例模式71188,其中有5个数字.检查此模式重复的频率.例如,在7118828374571188273462371188中,此模式重复3次.

我用Java编写了上述测试.无论重要性有多小,我还能做其他检查.一直在查阅书籍,我无法找到任何进一步的随机性高级测试.

请指教.

最佳答案 NIST已经发布了一系列随机数生成器测试.它们不是用Java实现的,所以如果排除使用它们的测试套件,你可以使用它们从中汲取灵感.

http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests.html

this问题的回答也有一些相关的链接和答案.

点赞