我有一个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问题的回答也有一些相关的链接和答案.