Обновлен плагин Fabric gradle до 1.28.0
dependencies {
classpath 'io.fabric.tools:gradle:1.28.0'
}
Как Вы упоминаете в своем втором редактировании, я, вероятно, реализовал бы все это как обход дерева файла с PRNG, решающим "изменение в каталоге", "создают каталог", "перемещают один уровень вверх", "создают файл", "удаляют файл" и имеют другое значение для определения что файл удалить, что каталог измениться на и генерировать названия файлов и каталогов.
Я использовал похожий метод для стресс-теста сервер рабочего процесса, который я записал (хотя я не должен был отслеживать то, где объекты работы были, просто должен был случайным образом выбрать для работы на).
Если это только для тестирования, что не так с некоторым простым, наивным алгоритмом поколения? Как, генерируйте случайное количество (1-10) подкаталогов, генерируйте имена их, затем каждого каталога рекурсивно генерируют подкаталоги и некоторую сумму файлов.
Это легко настраиваемо, и можно управлять семенем для rand
. Для более броских потребностей распределение сумм файлов/каталогов может быть нелинейным, но что-то, что удовлетворяет Вашим потребностям больше.
Звуки что-то, что может быть сделано на скорую руку в полчаса и добраться, покончило. Мне не удается видеть потребность в чем-то mathemathical или комплекс. Если это не только для забавы, конечно :-)
Это - ряд различных проблем, который делает его забавной загадкой.
Сначала у нас есть генератор псевдослучайного числа. Существует много доступного материала. Я только ожидаю функцию, которая создает число в диапазоне 0.. n-1.
Затем у нас есть алгоритм для определения количества подузлов на единственном узле. Заманчиво использовать линейную функцию, но это не справедливое представление действительности. Таким образом, можно создать следующую функцию:
randomsize() {
int n = Random(0,10);
if (n<10) return n;
return Random(0,9) + 10 * random;
}
Эта функция производит небольшие числа. Большинство будет в диапазоне 0.. 9, но вершина фактически бесконечно. Если Вы хотите иметь большие числа, Вы могли бы также использовать больший порог
randomsize() {
int n = Random(0,100);
if (n<10) return n;
return Random(0,9) + 10 * random;
}
Последняя проблема состоит в том, как создать дерево. Это довольно просто. Но необходимо иметь в виду, что algorith должен закончиться. Таким образом, необходимо выполнить одно из следующих действий:
Конечно, можно настроить параметры для создания необходимого дерева.