Java 对于多个列表的随机性是否有一个很好的衡量标准?

Java 对于多个列表的随机性是否有一个很好的衡量标准?,java,random,shuffle,Java,Random,Shuffle,我有以下代码: int numberofTimesToRandomize = 10; long seed = System.nanoTime(); Random r = new Random(seed); List<List<Integer>> listOfRandoms = new ArrayList<List<Integer>>(); List<Integer> l = service.get(); for (int i = 0;

我有以下代码:

int numberofTimesToRandomize = 10;
long seed = System.nanoTime();
Random r = new Random(seed);
List<List<Integer>> listOfRandoms = new ArrayList<List<Integer>>();
List<Integer> l = service.get();
for (int i = 0; i < numberofTimesToRandomize; i++) {
    Collections.shuffle(l, r);
    List<Integer> rnd = l.subList(1, 100);
    listOfRandoms.add(rnd);
}
intnumberoftimestorandomize=10;
长种子=System.nanoTime();
随机r=新随机(种子);
List listOfRandoms=新建ArrayList();
List l=service.get();
for(int i=0;i
我想知道的是,是否有一种方法可以确定10个列表(每个列表的大小为100)的随机性度量。从中挑选随机列表的列表大小约为10000

我看到有几个问题的答案是“不,没有办法”。但这些是随机数序列。

任何帮助都将不胜感激

编辑: 基于Peter Lawrey关于这个测试目的的问题,我认为一个简单的方法是检查结果10个列表是否完全相同,而不受顺序的影响。 这个问题回答了我的问题:


我想知道这是否是对上述代码进行单元测试的唯一方法。

您确实意识到“numberOfTimesToRandomize”是一个荒谬的想法,对吗?如果你将一副牌(或一组牌)洗牌两次,它不会使其随机性增加两倍。一个随机序列的概率与任何其他序列相同,分别为1、2、3、4、5。你想做这个测试的原因是什么?引用你链接到的问题的第一个答案“我认为你需要做的是确定对你来说很重要的随机性方面——分布、数字分布、缺少公因数、预期的素数、斐波那契数和其他“特殊”数等。”@卡亚曼-我不确定我是否明白你的意思。通过变量numberOfTimesToRandomize,我希望生成一个“numberOfTimesToRandomize”列表,每个列表都是随机的。在将其添加到
随机列表之前,您需要复制
rnd
,否则,您将获得对具有完全相同元素的完全相同列表的
numberOfTimesToRandomize
引用。