Есть ли хороший способ измерения случайности в нескольких списках?

У меня есть следующий фрагмент кода:

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);
}

Я хочу знать, есть ли способ определить меру случайности в 10 списках размером 100 каждый. Размер списка, из которого выбираются случайные списки, составляет примерно 10000.

Я видел, как на пару вопросов отвечали «нет, нет выхода». Но это для последовательности случайных чисел. Хороший и простой способ измерения случайности

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Основываясь на вопросе Питера Лоури о цели этого теста, я подумал, что одна простая мера - проверить, являются ли результирующие 10 списков одинаковыми независимо от порядка. этот вопрос отвечает на мой вопрос: Простой способ узнать, содержат ли два разных списка одни и те же элементы?

Интересно, является ли это единственным способом модульного тестирования приведенного выше кода.


person Krish Srinivasan    schedule 17.01.2014    source источник
comment
Вы ведь понимаете, что numberOfTimesToRandomize - нелепая идея, верно? Если вы дважды перемешаете колоду карт (или коллекцию), это не сделает ее в два раза более случайной.   -  person Kayaman    schedule 17.01.2014
comment
Случайная последовательность имеет равные шансы быть 1, 2, 3, 4, 5, как и любая другая последовательность. По какой причине вы хотите пройти этот тест?   -  person Peter Lawrey    schedule 17.01.2014
comment
Цитируя первый ответ на вопрос, с которым вы связались, я думаю, что вам нужно определить аспекты случайности, которые важны для вас - распределение, распределение цифр, отсутствие общих факторов, ожидаемое количество простых чисел, фибоначчи и другие специальные числа. и Т. Д.   -  person Peter Lawrey    schedule 17.01.2014
comment
@Kayaman - Я не уверен, что понимаю тебя. С помощью переменной numberOfTimesToRandomize я намерен создать список из списков numberOfTimesToRandomize, каждый из которых является случайным.   -  person Krish Srinivasan    schedule 17.01.2014
comment
@Lawrey - одна из целей - это модульный тест, чтобы убедиться, что списки хотя бы случайны. Другими словами, я не составляю каждый раз один и тот же список. Возможно, это хорошая мера. Если списки не совпадают, значит, есть некоторая случайность.   -  person Krish Srinivasan    schedule 17.01.2014
comment
Вам нужно скопировать rnd перед добавлением его в listOfRandoms, иначе вы получите numberOfTimesToRandomize ссылки на тот же самый список с точно такими же элементами.   -  person Louis Wasserman    schedule 17.01.2014
comment
@Wasserman - оказалось, что в моем тестировании результат такой, как вы предсказали. Однако я не уверен, что понимаю почему. List ‹Integer› rnd - это новая ссылка каждый раз, и l.subList должен каждый раз возвращать другой фрагмент списка.   -  person Krish Srinivasan    schedule 17.01.2014