Заполнение массива случайных чисел с минимальными разделителями / распределением?

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

Я заполнил массив 5 случайными числами от 0 до 100:

private var myArray:Array = new Array();

for (var i:uint = 0; i < 5; i++)
    myArray.push(Math.round(Math.random() * 100));

далее я отсортировал массив в числовом порядке:

myArray.sort(Array.NUMERIC);

после заполнения и сортировки предположим, что myArray теперь содержит эти значения:

26, 27, 42, 92, 97

теперь я хотел бы, чтобы некоторые или все значения массива были сброшены, если это необходимо, чтобы они были по крайней мере определенный процент (скажем, 10%) от максимального значения (100) отдельно друг от друга.

первые 2 значения (26 и 27) не отличаются друг от друга по крайней мере на 10%, и ни одно из двух последних значений ( 92 и 97). однако, если я просто сдвинул значение 27 на 10% с 26, так что 27 изменится на 37, 37 теперь конфликтует со следующим значением 42.

каков наилучший подход для заполнения массива случайных чисел, значения которых будут быть по крайней мере на определенный процент друг от друга, но все же случайным.

это может быть само собой разумеющимся, но я ищу решение, которое является переносимым, где максимальные значения и минимальные проценты распределения могут быть любыми, а не только для моего примера выше.

5
задан TheDarkIn1978 5 February 2011 в 16:13
поделиться